PDA

View Full Version : سوال: کار با thread ها (مقدار دهی به تکس باکس در یک تابع که با thread اجرا می شود)



kooroshheydarirad
چهارشنبه 04 اسفند 1395, 14:16 عصر
سلام دوستان گلم

یه تابع دارم که توی اون تابع یه سری محاسبات انجام میشه (مهم نیست محاسبات) بعد نتیجه محاسبه توی یک تکس باکس نمایش داده می شود

این تابع با thread اجرا میشه(یعنی یه دکمه داریم با زدن اون دکمه یه thread اون تابع رو اجرا میکنه)

نکته اینه که وقتی توی تابع میخاد یه رشته رو به TextBox اضافه کنه خطا رخ میده

مشکل از کجاست و چیکار کنم.:متفکر:

CsharpNevisi
شنبه 07 اسفند 1395, 09:27 صبح
یکی از راهاش اینه که قبل از شروع ترد این خط کدو بنویسی


CheckForIllegalCrossThreadCalls = false;
ولی این کارو پیشنهاد نمیکنن .. میتونی یه Handler براa بنویسی

مهرداد صفا
شنبه 07 اسفند 1395, 13:23 عصر
سلام.
متود Control.Invokeباعث میشه که delegate ارسالی توسط thread سازنده کنترل اجرا بشه و و به مشکل cross thread call بر نخورید.
مثال:


myTextbox.Invoke(()=>myTextbox.Text="123";);