PDA

View Full Version : سوال: استفاده از textbox در Backgroundworke DoWork؟



h-rafiee
شنبه 05 آذر 1390, 22:54 عصر
سلام خسته نباشید میخواستم ببینم راهی برای استفاده مستقیم TextBox و ... در background DoWork باید چکار انجام داد؟!
از یکی از دوستان که پرسیدم گفت باید برای هر شی ای که می خوای استفاده کنی بسازی.
می خواستم ببینم راه دیگه ای هم هست؟!

mmd2009
شنبه 05 آذر 1390, 23:59 عصر
با سلام

منظورتون رو از مستقیم وصل شدن به تکست باکس یعنی چی ؟!

ولی به هر حال راه درستش اینطوریه :


public delegate void TextBoxDelegate(string text);

private void BackgroundWorker1DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 5; i++)
{
System.Threading.Thread.Sleep(1000);
textBox1.Invoke(
new TextBoxDelegate(SetText),
new object[] {i.ToString()});

}
}
private void Button1Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}

private void SetText(string text)
{
textBox1.Text = text;
}


موفق باشید

ace_sina
یک شنبه 06 آذر 1390, 01:56 صبح
این کد رو زیر InitializeComponent تو فرمی که از backgroundWorker استفاده میکنی بذار مشکلت رو حل میکنه :

Form1.CheckForIllegalCrossThreadCalls = false;
Control.CheckForIllegalCrossThreadCalls = false;

go0d luck

mmd2009
یک شنبه 06 آذر 1390, 03:22 صبح
این کد رو زیر InitializeComponent تو فرمی که از backgroundWorker استفاده میکنی بذار مشکلت رو حل میکنه :

Form1.CheckForIllegalCrossThreadCalls = false;
Control.CheckForIllegalCrossThreadCalls = false;

go0d luck

با سلام

یک سوال

ایا عواقب استفاده از این روش رو میدونید ؟!

موفق باشید.

ace_sina
یک شنبه 06 آذر 1390, 19:07 عصر
نه متاسفانه . ممنون میشم راهنماییم کنید .

mmd2009
یک شنبه 06 آذر 1390, 23:41 عصر
اینجارو (http://stackoverflow.com/questions/2587930/ramifications-of-checkforillegalcrossthreadcalls-false)بخونید

موفق باشید