フォームロードイベントで長いプロセスを実行しているフォームが1つあります。 フォームロードイベント中にOne Gifイメージ "Please Wait"を表示します。フォームロードイベント中に待機中のGifイメージを表示する方法
以下はコードです。 Thread.start後
private void frmWaitShow()
{
try
{
frmWaitwithstatus objWait = new frmWaitwithstatus();// this form has Gif Image for Processing
objWait.lblStatus.Text = "Processing Request, Please wait...";
objWait.ShowDialog();
}
catch (Exception ex)
{
Logger.SystemException(ex);
Logger.FTSError(" ERROR :" + ex.Message + "frmTest || frmWaitShow");
}
}
Thread oThread;
private void frmTest_Load(object sender, EventArgs e)
{
try
{
oThread = new Thread(new ThreadStart(frmWaitShow));
oThread.Start();
//Functions for Connection with devices
if (LoadDatafromDB() == false) return;
if (ElectTestLoad() == false) return;
if (PowerOnSelfTest() == false) { return; }
InitiControlsElectTest();
SetSystemMode(SystemMode.ElectricalMode);
oThread.Abort();
}
catch (Exception ex)
{
oThread.Abort();
Logger.SystemException(ex);
}
}
()私のデバッガは、メインとそれが行の下に移動した後、私が作成したが、1つのスレッドごとに1一歩を行きます。
frmWaitwithstatus.csコンストラクタ最初の行
public frmWaitwithstatus()
それは、後にのみ、それは(GIF処理画像である)私のスレッドを実行して起動し、私のスレッドを実行して停止し、完全なメインスレッドの実行後にメインスレッドのすべての機能を実行します。
使用タスクと非同期/待機待ちのパスに従う –
[クロススレッド操作が有効でない:作成されたスレッド以外のスレッドからアクセスされたコントロール](https://stackoverflow.com/questions/142003/cross-thread-operation) - なし-valid-control-accessible-from-the-thread-other-than-the) – MickyD
@MickyDいいえ、そうではありません。私は別のスレッドでUIコントロールを処理する方法を知っている、ここで私はスレッドからGIF画像を持つ別のフォームを呼び出しています。 –