winform应用程序挂起

时间:2011-05-02 09:59:17

标签: c# .net

我有一个使用OPCDA.Net组件的应用程序。我使用opcserver,注册128个组,128个数据更改处理程序(128个同步线程)。应用程序不会返回错误,它在前10分钟正常工作,但随后停止。 我将在每250毫秒调用此方法 当我暂停应用程序以检查它将停止的位置时,它将不允许设置中断。

private void DataChangeHandler(object sender, DataChangeEventArgs e)
{
// The invoke handling is only required when the callback handler writes data into Windows dialogs
    try
    {
        if (InvokeRequired)
        {
            BeginInvoke(new DataChangeEventHandler(DataChangeHandler), new object[] { sender, e });
            return;
        }
        if (parameter.X == 0)
        {
            parameter.X = 1;
            Thread th = new Thread(param.update);
            th.Start(e);
        }
    }
    catch { }
}

像这样我将创建128 datachange处理程序方法。 有时,当我执行此代码时,它将停止工作。  您是否知道可以从BeginInvoke中调用这些属性的应用程序的任何情况? 当我将运行2个datachnagehandler它将工作正常,当我将尝试10数据更改处理程序它将挂起,当我将使用调试器测试它将删除工作指针,没有异常捕获。

0 个答案:

没有答案