نمایش نتایج 1 تا 2 از 2

نام تاپیک: تبدیل یک تابع سی شارپ به وی بی (کار با وقفه)

  1. #1

    تبدیل یک تابع سی شارپ به وی بی (کار با وقفه)

    سلام و عرض ادب خدمت همه دوستان
    من یک مشکلی با این تبدیل های انلاین دارم که سی شارژ رو می خوام به وی بی تبدیل کنم هر تابعی از وقفه ها توش استفاده کرده باشه رو درست تبدیل نمی کنه و منم هم نمی تونم راست و ریستش کنم متاسفانه
    من یکم کلا تو وی بی کار با وقفه ها برام سخت هست
    یک تابع ساده میزارم ببینین می تونین برام تبدیل کنین


    private void showResponse(string msg)
    {
    var threadParameters = new ThreadStart(delegate { WritetoTextBox(msg); });
    var thread2 = new Thread(threadParameters);
    thread2.Start();
    }
    public void WritetoTextBox(string text)
    {
    if (textBox2.InvokeRequired)
    {
    Action safeWrite = delegate { WritetoTextBox($"{text}"); };
    textBox2.Invoke(safeWrite);
    }
    else
    {
    textBox2.Text = text;
    }
    }

  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,007

    نقل قول: تبدیل یک تابع سی شارپ به وی بی (کار با وقفه)

    نقل قول نوشته شده توسط rezaei manesh مشاهده تاپیک
    سلام و عرض ادب خدمت همه دوستان
    من یک مشکلی با این تبدیل های انلاین دارم که سی شارژ رو می خوام به وی بی تبدیل کنم هر تابعی از وقفه ها توش استفاده کرده باشه رو درست تبدیل نمی کنه و منم هم نمی تونم راست و ریستش کنم متاسفانه
    من یکم کلا تو وی بی کار با وقفه ها برام سخت هست
    یک تابع ساده میزارم ببینین می تونین برام تبدیل کنین


    private void showResponse(string msg)
    {
    var threadParameters = new ThreadStart(delegate { WritetoTextBox(msg); });
    var thread2 = new Thread(threadParameters);
    thread2.Start();
    }
    public void WritetoTextBox(string text)
    {
    if (textBox2.InvokeRequired)
    {
    Action safeWrite = delegate { WritetoTextBox($"{text}"); };
    textBox2.Invoke(safeWrite);
    }
    else
    {
    textBox2.Text = text;
    }
    }
    البته، کد شما را می‌توان به زبان VB .Net تبدیل کرد. در ادامه نسخه معادل آن آورده شده است:
    Private Sub ShowResponse(ByVal msg As String)
    Dim threadParameters As New ThreadStart(Sub() WriteToTextBox(msg))
    Dim thread2 As New Thread(threadParameters)
    thread2.Start()
    End Sub


    Public Sub WriteToTextBox(ByVal text As String)
    If textBox2.InvokeRequired Then
    Dim safeWrite As Action = Sub() WriteToTextBox($"{text}")
    textBox2.Invoke(safeWrite)
    Else
    textBox2.Text = text
    End If
    End Sub


    ### توضیحات:
    1. متد `ShowResponse` یک رشته را به متد `WriteToTextBox` ارسال می‌کند و آن را در یک `Thread` جدید اجرا می‌کند.
    2. متد `WriteToTextBox` بررسی می‌کند که آیا باید از `Invoke` برای دسترسی به `textBox2` استفاده کند یا نه.
    3. اگر دسترسی به کنترل نیاز به فراخوانی از نخ اصلی داشته باشد، از `Invoke` استفاده می‌شود. در غیر این صورت، متن مستقیماً تنظیم می‌شود.


    (Copilot)

تاپیک های مشابه

  1. تفاوت قیمت لوله پی وی سی با یو پی وی سی در چیست
    نوشته شده توسط asgari1105 در بخش بک لینک (Back Links)
    پاسخ: 0
    آخرین پست: سه شنبه 31 خرداد 1401, 19:02 عصر
  2. پاسخ: 1
    آخرین پست: چهارشنبه 25 شهریور 1394, 18:35 عصر
  3. نتوانستن دراگ کردن کامپونت های جانوس از منوی ابزار روی فرم در سی شارپ
    نوشته شده توسط mm26363@yahoo.co.uk در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 0
    آخرین پست: جمعه 29 فروردین 1393, 21:29 عصر
  4. پاسخ: 6
    آخرین پست: جمعه 19 اسفند 1390, 22:23 عصر
  5. پاسخ: 3
    آخرین پست: شنبه 19 بهمن 1387, 15:02 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •