![](/img/trans.png)
[英]How do you set a component property from within a thread without throwing an error in C# .NET?
[英]Forked thread in C# .net App dies inexplicably and without throwing any errors
首先,很抱歉,如果这是一个模糊的问题,很难解释,也很奇怪,这似乎也不是一个特别具体的问题。 但我会尽力在这里解释一下:
我有一个C#.net应用程序,该应用程序派生了一个新线程来完成大部分工作-主线程仅处理GUI前端。
syncThread = new Thread(new ThreadStart(syncClass.sync));
同步线程不断循环...
public void sync()
{
while (true)
{
do stuff
最后,要有睡眠来阻止它一直占用CPU。
System.Threading.Thread.Sleep(sync_interval);
为了填充一些背景知识,它在“做事”中的工作是使用Sages API连接到Sage,并连接到SOAP服务,并且基本上是从Sage中提取数据并推送到SOAP。 这很好,但是...
似乎正在发生的事情是,线程以随机的间隔停止执行-好像它已经“消失了”。 我已登录到屏幕和文件以尝试查找引起这种情况的特定原因,但是几乎每次都在过程的不同部分停止它。
我尝试捕获错误并将它们记录到屏幕和文件中,以及将代码执行进度记录到文件中-但是,当发生这种情况时-它根本不会引发错误(或者如果发生错误,我将无法捕获)。 所以我完全被困住了。
更奇怪的是,这似乎并没有在安装的每个系统上发生,但确实发生在不只是奇数系统上。
没有任何捕获到的错误可修复,也没有固定的代码区域可用来研究问题(因为我说过-不一致),我完全困惑如何进行。
那么-是否有任何人知道的常规线程问题会导致这种行为? 首先,有没有一种更好的方法可以使我着手进行线程处理,或者任何人都可以就如何查找和捕获错误提供任何进一步的建议,以便我可以对其进行修复?
请帮忙 :)
如果您通过SDO与Sage 50交谈,它是一个COM接口,并且在单线程单元(STA)中运行,那么我99%的确定您的应用程序也必须以STA模式运行-我们的应用程序将以STA身份运行如果我还记得的话,我们只线程UI元素。
尝试将[STAThread]粘贴到Main()函数中,看看是否有帮助-让我知道您的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.