Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinForms线程调用处理_C#_Multithreading_Winforms - Fatal编程技术网

C# WinForms线程调用处理

C# WinForms线程调用处理,c#,multithreading,winforms,C#,Multithreading,Winforms,此代码是从创建它的线程以外的其他线程运行的。 线程从StartScanning public StartScanning() { InitializeComponent(); Thread _IMSS_THREAD = new Thread(_IMSS_START_SCANNING); _IMSS_THREAD.IsBackground = true; _IMSS_THREAD.Start(); } 主要形式 StartScanning _IMSS_START

此代码是从创建它的线程以外的其他线程运行的。
线程从
StartScanning

public StartScanning()
{
    InitializeComponent();

    Thread _IMSS_THREAD = new Thread(_IMSS_START_SCANNING);
    _IMSS_THREAD.IsBackground = true;
    _IMSS_THREAD.Start();
}
主要形式

StartScanning _IMSS_START_SCANNING = StartScanning._IMSS_CREATE_CONTROLE();
_IMSS_START_SCANNING._IMSS_ON_ALL_SCAN_COMPLETE += _IMSS_ON_SCAN_COMPLETE;
this._IMSS_MainPanel.Controls.Add(_IMSS_START_SCANNING);
扫描完整的用户控件时,此代码的主要形式为:

ScanComplete _IMSS_ON_COMPLETE = new ScanComplete();

public void _IMSS_ON_SCAN_COMPLETE(ref List<BetterListViewGroup> _IMSS_LIST_OF_GROUP_TARGETS)
{
    List<BetterListViewGroup> IMSS_LIST_OF_GROUP_TARGETS = _IMSS_LIST_OF_GROUP_TARGETS;
    _IMSS_ON_COMPLETE._IMSS_AddRangeTargets(ref IMSS_LIST_OF_GROUP_TARGETS);
    this.Invoke(new MethodInvoker(() =>
        {
            this._IMSS_MainPanel.Controls.Clear();
            this._IMSS_MainPanel.Controls.Add(_IMSS_ON_COMPLETE);
        }));
}
在主线程上创建(它是全局的)并在使用

_IMSS_ON_COMPLETE._IMSS_AddRangeTargets(ref IMSS_LIST_OF_GROUP_TARGETS);

它向列表中添加了一组
listview
,它不在invoke部分,但它没有抛出线程错误,为什么它没有抛出错误?

在表单的构造函数中尝试以下操作:

public StartScanning()
{
    InitializeComponent();
    StartScanning.CheckForIllegalCrossThreadCalls = false;
}

请记住,这不是正确的方法,但这将帮助您解决问题。搜索线程安全调用

和最相关的:WinForms、WPF、其他?Windows窗体应用程序在哪里创建这些线程?我没看见
public StartScanning()
{
    InitializeComponent();
    StartScanning.CheckForIllegalCrossThreadCalls = false;
}