0
try
{
    Thread t = new Thread(() =>
    {
        try
        {
            result = myclass.Start(mode, Check, Tasks,exeMode);
        }
        catch (GeneralException ge)
        {

        }

        finally
        {
            if (Master)
            {

            }
        }
    });
    t.IsBackground = true;
    t.Start();
    bResult = true;
}
catch(GeneralException ge)
{

}

mode = Mode.Continue;


if (ErrorCode != 0)
{                       
     this.Invoke(new System.EventHandler(_showErrorMsg), execErrorCode, EventArgs.Empty);
}
else if (result == Result.RegainRequest)
{                       
    this.Invoke(new System.EventHandler(_showMsg), Modes.RegainRequest, new EventArgs());
}
else if (result == Result.RegainRequestNoClear)
{
    this.Invoke(new System.EventHandler(_showMsg), Modes.RegainRequestNoClear, new EventArgs());
}
else if (result == Result.PathRemain)
{                        
    this.Invoke(new System.EventHandler(_showMsg), Modes.PathRemain, new EventArgs());
}
else
{
    _regainmode = RegainMode.Continue;
}

这里我们有一个叫做 t 的线程,它是后台线程。我在其中调用了 Start 方法,该方法返回值如上面的代码所示。

我必须在下面代码中的 GUI 线程中使用这个结果

else if (result == Result.RegainRequest)
{                        
    this.Invoke(new System.EventHandler(_showMsg), Modes.RegainRequest, new EventArgs());
}

请告诉我如何才能做到这一点,以便我可以在我的 GUI 线程中使用这个值。

4

0 回答 0