私のアプリケーションでは時間がかかるprocess.There前に私は別のスレッドでその操作をしようとします。私はそれを別のスレッド私のメインUIはまだ長い実行process.Butの時間中にフリーズすることがわかったまだ私は把握できませんでしたその理由は?私のコードで何か問題がありますか?UIは別のスレッドでもプロセスをフリーズしますか?
私のイベントハンドラのコード
private void BtnloadClick(object sender, EventArgs e)
{
if (null != cmbSource.SelectedItem)
{
string selectedITem = ((FeedSource) cmbSource.SelectedItem).Url;
if (!string.IsNullOrEmpty(selectedITem))
{
Thread starter = new Thread(() => BindDataUI(selectedITem));
starter.IsBackground = true;
starter.Start();
}
}
private void BindDataUI(string url)
{
if (feedGridView1.InvokeRequired)
{
BeginInvoke(new Action(() => BindDataGrid(url)));
}
else
BindDataGrid(ss);
}
private void BindDataGrid(string selectedItem)
{
for (int i = 0; i < 10; i++)
{
//Time consuming Process
}
}
BindDataGridをUI関連および非UI関連に分割する必要があります。 –
あなたのコメントありがとうございました – Renushi