繁体   English   中英

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM