我正在使用COM-automation将数据写到一个已经打开的Word文档中。
由于这个操作需要相当长的时间,所以我想向用户显示一个进度条。
不可能在后台工作者中进行数据写出,因为即使实现了MessageFilter,这也会导致Word应用程序抛出异常rpc_e_servercall_retrylater。我了解到这是因为前台线程与后台线程通信有困难。
有没有可能反过来使用新的线程来显示进度条呢?我尝试打开一个只包含进度条的新winform,并在它自己的线程上打开它,但它没有更新。
其他想法?
发布于 2014-07-10 03:25:28
这里有一个小片段,希望能对你有所帮助
private void BackgroundWorker2_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
string S = Convert.ToString(e.UserState);
Label1.Text = S;
ProgressBar1.PerformStep();
S = null;
}
Private Sub BackgroundWorker2_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BackgroundWorker2.ProgressChanged
Dim S As String = CType(e.UserState, String)
Label1.Text = S
ProgressBar1.PerformStep()
S = Nothing
End Subhttps://stackoverflow.com/questions/24659153
复制相似问题