مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza.cs

عضویت از 1393/08/12

MultiThreading

  • یکشنبه 15 فروردین 1395
  • 14:39
تشکر میکنم

با سلام و خسته نباشید

من وقتی Thread استفاده میکنم و داخل اون میخوام به کنترل های فرم دسترسی داشته باشم خطا میده که از داخل Thread نمیشه این کارو کرد. مجبورم تو لود فرم بنویسم 

CheckForIllegalCrossThreadCalls = false;

که اینم جایی خوندم که کاره خوبی نیست. پس راه حلش چیه ؟

ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 15 فروردین 1395
  • 15:15

شما برای دسترسی به کنترل ها داخل MultiThreading میبایست از delegate و Invoke استفاده کنید :

string newValue = "hi there";
if (textBox.InvokeRequired)
{
    textBox.Invoke((MethodInvoker)delegate { textBox.Text = newValue; });
}
else
{
    textBox.Text = newValue;
}

کنترل توسط یک نماینده (delegate) فراخوانی (Invoke)می شود.

کاربر سایت

morteza.cs

عضویت از 1393/08/12

  • یکشنبه 15 فروردین 1395
  • 15:48

خیلی ممنون از شما

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)