fun*_*err 2 c# startup backgroundworker
我的程序从Windows启动开始,
但后台工作程序应该在程序打开后立即工作.
但它以延迟开始,然后甚至返回错误的符号(如果站点启动它会返回),
只有在大约15秒之后,后台工作者才能继续正常工作并且程序也是如此.我认为这是因为.net框架试图加载,或者尚未启动的互联网连接,或者尚未加载的东西(Windows启动).
什么可以解决这个问题,可能的原因是什么?(WinForm C#)
编辑:
这是我想到的,
我不认为这是一个很好的做法.有没有更好的办法?
(加载方法):
while (!netConnection())
{
}
if(netConnection())
bwCheck.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)
我认为这是因为.net框架试图加载
不.如果是这样的话,你的程序将无法运行.
或尚未上线的互联网连接,或
对.网卡/接口/连接/未初始化并连接到互联网的任何内容.您不能指望PC在启动时立即连接到互联网.更重要的是,如果您的客户使用网络身份验证在域中,该怎么办?如果他们在一些任务完成之前延迟网络通信怎么办(这实际上是我下面的问题.严重的.)
在这种情况下启动和运行可能需要更长的时间(阅读:不要Thread.Sleep()徒劳地尝试'修复'这个问题.
我不得不在系统设计中解决这样的问题,我们通过PC中的以太网总线与运动控制板进行通信.我最后添加了一些代码来监控网络连接的状态,并且只有在它建立后才开始通过网卡与设备通信.
编辑:正如SLaks在评论中指出的,这在C#中非常简单:NetworkAvailabilityChanged事件为您的编程乐趣.
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |