残りのロジックとは別のスレッドのメソッドから InfoPath フォームのコントロールを変更しようとしていますが、うまくいきません。これを機能させる方法はありますか?別のスレッドを使用している理由は、描画中に署名パッドからグラフィックをエコーしようとしているからです。
public void InternalStartup()
{
readSigThread = new Thread(new ThreadStart(Run));
readSigThread.Start();
}
public void Run()
{
while (!done)
{
SigPlus.SetImageXSize(400);
SigPlus.SetImageYSize(100);
SigPlus.SetImagePenWidth(11);
SigPlus.SetJustifyMode(5);
Image sigImage = SigPlus.GetSigImage();
String sigBase64 = ImageToBase64(sigImage, ImageFormat.Jpeg);
DeleteNil(imgCanvas);
imgCanvas.SetValue(sigBase64); // image canvas is the control that I am trying to change.
}
}
元のスレッドには、描画が完了したことを示すボタン クリック リスナーがあります。しかし、新しいスレッドの開始後、リスナーも機能しなくなったようです。