別のクラスから BackgroundWorker を使用するコードを作成しました。
public void BackgroundWorkerTest()
{
BackgroundWorker bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = false;
bw.DoWork += new DoWorkEventHandler(DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(RunWorkerCompleted);
bw.RunWorkerAsync();
while (bw.IsBusy)
System.Threading.Thread.Sleep(50);
}
private void DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
string connStr = "<conn_str>";
string path = "";
MyClass.StaticMethod(string1, string2, worker);
}
private void ProgressChanged(object sender, ProgressChangedEventArgs e)
{
int progress = e.ProgressPercentage;
string message = e.UserState.ToString();
}
private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
string progress = "Done.";
}
MyClass.StaticMethod() から呼び出します
worker.ReportProgress(percents, message);
進捗情報を送信します。上記のコード (BackgroundWorkerTest() メソッドで言及) などを VBScript で使用することは可能ですか? VBScript (InstallShield 内) から進捗情報を出力する必要があります。これに十分な機能がありますか?