我正在使用COM-automation将数据写出到已经打开的Word文档。
由于此操作需要很长时间,因此我想向用户显示进度条。
无法在后台工作程序中执行数据写入操作,因为即使实现了MessageFilter,这也会导致Word应用程序抛出异常rpc_e_servercall_retrylater。我已经知道这是由于Words前台线程与后台线程沟通有困难。
是否可以反过来转而使用新线程来显示进度条?我试图打开一个新的winform,里面只有进度条,并在它自己的线程上打开它,但它没有更新。
其他想法?
答案 0 :(得分:0)
这里有一段我希望可以帮助你的小片
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 Sub