c#backgroundworker reportProgress返回百分比和结构

时间:2015-11-17 21:36:59

标签: c# backgroundworker

我的背景工作者应该返回百分比和对象。 它是一个结构。

serialPort.DiscardInBuffer(); // clear InBuffer
serialPort.Write(adv_request, 0, 3); // Write byte array to serial port, with no offset, all 3 bytes
process_DoWork(serialPort);
worker.ReportProgress(0, pfc_parsedData); //return parsed data to main thread

这里我得到一个异常“System.InvalidCastException”

public void request_ProgressChanged(object sender, ProgressChangedEventArgs e) //this function is need update mainthread controls
{
    if (e.ProgressPercentage == 0)
    {
         sbStatus.Text = "Logging active...";
         Pfc_parsedData pfc_parsedData = (Pfc_parsedData)sender;
    }
    else
    {
         sbStatus.Text = "Offline";
    }
}

1 个答案:

答案 0 :(得分:2)

sender是后台工作者,而不是您在报告进度时提供的数据。该数据位于e.UserState