小编Eig*_*uru的帖子

在Commodore Basic 4.0中打印电路板?

我在Commodore Basic 6502中打印一块点有问题.

这就是我所要做的:(这是一个子程序)

10 INPUT "Please enter a number:", X
20 DIM A$(X, X)
30 FOR I = 0 TO X
40 FOR J = 0 TO X
50 A$(I, J) = "."
60 NEXT
70 NEXT
80 PRINT A$
END
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题,因为当我将它粘贴到模拟器中时,键入END,并按Enter键字面上没有任何反应?

任何帮助深表感谢.我正在尝试建立一个单词搜索游戏.

basic commodore

12
推荐指数
1
解决办法
139
查看次数

火灾中的异常处理和忘记C#5(在.net 4.5中)

考虑以下"即发即弃"用例:

调用者从我的方法请求一些数据.我的方法检查缓存以查看数据是否已存在.如果不是,则从源获取并缓存它.在获得结果之前,调用者不需要等待缓存发生,并且如果缓存失败,该方法不应该阻止调用者获得结果.我今天拥有的,看起来像这样:

public Foo GetFoo(string fooKey)
{
    // look for Foo with fooKey in cache
    // if Foo is not found, get Foo with fooKey from source
    // and assign it to local variable myFoo
    Task cacheTask 
           = Task.Run
                (
                    () => CacheFoo(myFoo)// fire-and-forget the caching of myFoo
                ); 
    return myFoo;
}
Run Code Online (Sandbox Code Playgroud)

如果CacheFoo抛出异常,它就会被观察到,最终(在.Net 4.5中)它被框架吞没了.我宁愿自己最后一次清理异常,但我不想阻止当前的线程.最好的方法是什么?

这是我尝试过的

try
{
    ...
   cacheTask.ContinueWith
            (
                (e) => { 
                         if (cacheTask.IsFaulted) 
                            { 
                             /* log cacheTask.Exception */; 
                             } 
                        }
                , TaskContinuationOptions.OnlyOnFaulted
            ); 
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?我是否需要IsFaulted上的"if"语句或者这是多余的,因为我已经指定了"OnlyOnFaulted"?

任何意见/建议将不胜感激.

c# error-handling asynchronous task-parallel-library .net-4.5

8
推荐指数
1
解决办法
3181
查看次数

以编程方式将Windows计算机加入AD域

这与此问题类似,但不是愚蠢- 但是,它寻求有关手动将服务器加入域(并且被正确重定向)的信息,我正在寻找有关以编程方式将计算机连接到域的一些代码的帮助.

场景是我们有一个启动器服务来实例化Amazon EC2 Server2008R1 VM,可选择通过User-Data流传递Machine Name.我们的映像中包含一个进程,用于在启动时检查用户数据的名称 - 如果不存在,则VM仍在我们的Cloud域之外,但如果存在该名称,则计算机将重命名为指定并自动加入到域名.

这是问题所在 - 如果我在实例启动后的任何时间手动运行此过程,它的工作方式完全如上所述; 机器名称已更改,并且VM已加入域(我们强制重新启动以实现此目的).

但是,当作为计划任务(在启动时触发)运行时,机器重命名按预期发生,但随后的调用JoinDomainOrWorkgroup(见下文)通过EC2而不是它具有的新名称来获取给VM的旧随机机器名称.刚被分配.

这导致WMI返回代码为8525,我们在AD存储库(该随机名称)中获得了一个断开连接的错误名称条目,并且该机器未加入该域.然后VM重新启动,第二次通过启动过程(异常触发,因为User-Data中有内容,但机器尚未在域中)执行所有相同的步骤并成功.

看起来机器名称在第一次通过时设置但未"完成",JoinDomainOrWorkgroup仍然看到原始名称.在第二次传递时,机器名称已正确设置,因此JoinDomainOrWorkgroup按预期工作.为什么这个过程在启动过程中会以这种方式运行,但是在已经启动的VM上手动运行时工作正常,我认为是问题的核心.

我已经尝试在重命名和连接步骤之间插入一个延迟,以防在JoinDomainOrWorkgroup重命名在幕后完成之前发生调用,但这没有帮助 - 我并没有真正期望它,因为整个过程手动运行时效果很好.因此,它可能是启动期间机器状态的细微差别和代码中的愚蠢差异的组合.

也许System.Environment.MachineNameSetDomainMembership方法中使用是不可取的?但即使我像我一样将新名称作为字符串传递,它也会失败SetMachineName.所以我很难过.

这是重命名机器的WMI代码:

/// <summary>
/// Set Machine Name
/// </summary>
public static bool SetMachineName(string newName)
{
  _lh.Log(LogHandler.LogType.Debug, string.Format("Setting Machine Name to '{0}'...", newName));

  // Invoke WMI to populate the machine name
  using (ManagementObject wmiObject = new ManagementObject(new ManagementPath("Win32_ComputerSystem.Name='" + System.Environment.MachineName + "'")))
  { …
Run Code Online (Sandbox Code Playgroud)

c# dns wmi amazon-ec2

7
推荐指数
1
解决办法
1万
查看次数

C#语法糖 - 设置对象属性的新方法?

对于这里的核心C#编码器,这看起来似乎是一个完全愚蠢的问题 - 但是,我刚刚在AWS SDK论坛中遇到了一段示例代码,并且完全被它所取代:

   RunInstancesRequest runInstance = new RunInstancesRequest()
    .WithMinCount(1)
    .WithMaxCount(1)
    .WithImageId(GetXMLElement("ami"))
    .WithInstanceType("t1.micro");
Run Code Online (Sandbox Code Playgroud)

这很让人联想到旧的VB6 With ... End With语法,我一直对C#中没有这种语法感到遗憾 - 我已经在我的VS2008项目中编译了它,并且它可以节省许多独立的行,分别引用这些属性.

我确定我在过去读过文章解释为什么VB6样式的With块不在C#中,所以我的问题是:这种语法是否总是存在于语言中,或者它是最近的.NET更改启用了吗?我们可以覆盖所有对象实例化,然后在同一糖中进行属性更改吗?

c# syntactic-sugar

6
推荐指数
2
解决办法
2048
查看次数

VS2010/.NET 4.0中BackgroundWorker线程访问的区别?

这是一个有趣的 - 在针对.NET 2.0/.NET 3.0/.NET 3.5运行的VS2005/VS2008中,BackgroundWorker线程可能无法直接更新启动该线程的WinForms表单上的控件 - 您将从System.InvalidOperationExceptionBackgroundWorker中获取说明"跨线程操作无效:控制从其创建的线程以外的线程访问''控件'".我记得2004年左右,当我第一次开始使用后台线程编写.NET WinForms应用程序时.有几种解决问题的方法 - 这不是一个要求答案的问题.

最近我一直在说,这种操作写在VS2010/.NET 4.0的时候,现在允许.这似乎不太可能,因为这种对象访问限制一直是线程安全编程的一个相当基本的部分.允许BackgroundWorker线程直接访问不由其自身拥有但由其父UI形式拥有的对象似乎与该原则相反.通过.NET 4.0文档进行的拖网没有发现任何可以解释这种行为的明显变化.

我没有VS2010/.NET 4.0来测试它 - 有权访问该工具集的人是否知道模型是否已更改为允许这种线程交互?我想将来利用它,或者部署线索.;)

c# multithreading .net-4.0 backgroundworker winforms

3
推荐指数
1
解决办法
826
查看次数

如何在 6502 basic 中等待 x 秒

在 Basic 6502 中如何等待 x 时间?我在 VICE xpet 上,我想打印一个字符,稍等一下,然后删除它,并重复一段时间,作为一种状态指示器。唯一的问题是它删除速度太快,因此指示器永远不会显示。我尝试在参考文献中寻找这样的命令,但是没有什么可以让我们稍等片刻。我知道,如果我创建一个巨大的 for 循环,我可能能够减慢机器的速度,从而通过蛮力来完成它,但如果可能的话,我宁愿避免这种情况。难道就没有更好的办法吗?谢谢!

basic

2
推荐指数
1
解决办法
2352
查看次数

Good Dynamics如何保护NSURLConnection?

启用GD后(通过调用enableSecureCommunication或验证应用程序),NSURLConnection将自动受到保护.它是如何做到的?

objective-c ios good-dynamics

1
推荐指数
1
解决办法
790
查看次数