在工作线程中修改字符串然后在主线程中读取结果的正确方法是什么?

时间:2019-04-23 14:45:44

标签: c# .net-core

因此,我将一个空字符串从主线程传递到工作线程,然后让工作线程修改该字符串,并且稍后主线程需要能够读取该字符串。当然,该字符串是通过值而不是通过引用传递的,因此无法对其进行修改。我可以通过传递一个大小为1的字符串数组来解决此问题,但是我想知道是否存在一种更干净的方法来解决此问题。

//in main thread
    string errorMessage="";
    System.Threading.Thread thread = new System.Threading.Thread(() => { 
        ProcessImport(path, errorMessage); });
    thread.SetApartmentState(System.Threading.ApartmentState.STA);
    thread.Start();

//in worker thread
    if(errorDetected)
    {
        errorMesage= "some message";
    }

//later in main thread
    if(errorMessage!="")
    {
         CreateFeedbackMessageBox(erorrMesssage, 5000);
    }

0 个答案:

没有答案