اطلاعیه

Collapse
No announcement yet.

یه سوال در مورد c#

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    یه سوال در مورد c#

    من یه برنامه توc# نوشتم که با استفاده از وقفه پورت سریال داده ها رو میخونم ولی موقع نوشتن تو text box ، error میده .اگه کسی کمک کنه ممنون میشم.
    private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
    serialPort1.Read(b, 0, 3);
    textBox1.Text = b[2].ToString();
    {
    :cry: :cry2: :angry:
    من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

    #2
    پاسخ : یه سوال در مورد c#

    سلام!

    اگه منظورتون این خطا هستش:
    Cross-thread operation not valid: Control 'MainForm' accessed from a thread other than the thread it was created on
    به دلیل اینه که تابع مربوط به وقفه دریافت توسط یک ترد مجزا از ترد مسئول عملیتات فرم برنامه فراخوانی می شه و دسترسی به اعضای فرم نداره برای حل این مشکل شما می تونید از دلیگیت استفاده کنید من یه مثال برات مینویسم که متن یک برچسب(لیبل) توسط وقفه دریافت پورت سریال عوض می شه این کد ها رو بالای برنامت کپی.

    کد:
     // delegate for change text
        public delegate void delSetLabelText(Label lbl, string txt);
        // function for change text
        private static void setLabelText(Label lb, string txt)
        {
          if (lb.InvokeRequired)
            lb.Invoke(new delSetLabelText(setLabelText), new object[] { lb, txt });
          else
            lb.Text = txt;
        }
    بعد داخل تابع وقفه , تابع بالا رو فراخوانی کن مثل کد زیر:

    کد:
     private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
          setLabelText(label1, serialPort1.ReadByte().ToString());
        }

    با این روش باید مشکلت حل بشه. برای کار خودت می تونی به جای لیبل تکسباکس بزاری. اگه مشکلت حل نشد بگو برات سورسش بفرستم. :redface:

    دیدگاه


      #3
      پاسخ : یه سوال در مورد c#

      اقا خیلی حال دادی دست درد نکنه
      اگه برای کار کردن با c# چندتا مرجع خوب به من معرفی کنید ممنون میشم .
      کتاب فارسی خوب چیزی سراغ دارید ؟؟؟ :question:
      من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

      دیدگاه


        #4
        پاسخ : یه سوال در مورد c#

        سلام!
        خواهش میکنم!

        من کتابی در مورد سی شارپ تا حالا نخریدم و نمیدونم چه کتاب هایی تو بازار هستش ولی کتاب های الکترونیکی زیادی تا حالا دانلود کردم .یک آموزش کامل سی شارپ به زبان فارسی هست که شاید دیده باشی لینک دانلودش اینه :
        http://www.parsaspace.com/mohsennowruzi/ebook/csharpfarsi/LearnVisualCsharpFarsi.pdf
        حجمش حدود 12 مگابایت هست.به نظر من کتاب خوبیه .

        MSDN هم خیلی عالیه تقریبا واسه هر کلاسی یه مثال داره که می تونه خیلی کمک کنه.

        در ضمن از دست من کاری بر بیاد در خدمتیم!

        موفق باشی!

        دیدگاه


          #5
          پاسخ : یه سوال در مورد c#

          سلام
          ممنون بابت راهنمایی شما
          من کتاب رو دانلود کردم و حتما مطالعه میکنم. من یه مرجع خوب میخوام برای یادگیری مفاهیم برنامه نویسی شی گرای .اگه راهنمایی کنی ممنون میشم .
          یه سوال:
          چطوری میشه فهمید کی یه پایه پورت سریال تغییر میکنه .؟؟؟؟ :surprised: :question:
          من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

          دیدگاه


            #6
            پاسخ : یه سوال در مورد c#

            سلام!

            در مورد کتاب واقعیتش اینه که نمی دونم :question: .همون pdf خوبه :nerd:.

            کنترل سریال پورت یه ایونت به نام PinChanged داره که این کارو می کنه .یعنی وقتی هر یک از پین های پورت سریال تغیر کنه این ایونت فراخونی میشه.

            کد:
             private void serialPort1_PinChanged(object sender, SerialPinChangedEventArgs e)
                {
                  
                }

            راستی اینا که گفتم داخل C#2005 کار می کنه!

            دیدگاه


              #7
              پاسخ : یه سوال در مورد c#

              به نظر شما #C سرعت سخت افزاریش از VC++ بیشتره؟؟؟
              خداوند جهاد را برای سرافرازی اسلام واجب کرد.
              حضرت فاطمه (س)

              دیدگاه


                #8
                پاسخ : یه سوال در مورد c#

                سلام

                من خیلی وارد نیستم ولی سرعت سخت افزار بستگی به خود سخت افزار داره.اگه منظورتون سرعت اجرای برنامه هستش من فکر کنم سرعت اجرای یه برنامه که با VC++ نوشته شده با یه برنامه با همان قابلیت که با C# نوشته شده بیشتره و حافظه رم کمتری مصرف می کنه.البته VC++ برای کار با سخت افزار قوی تره من اینو شنیدم ولی نمی دونم درسته یا نه.ولی برنامه نویسی با C# خیلی راحتره تا VC++ . ورژن این دو تا هم مهمه.VC++6 خیلی سریعه ولی خیلی سخته .
                :smile:

                دیدگاه


                  #9
                  پاسخ : یه سوال در مورد c#

                  سلام وممنون.
                  بنظر شما سرعت #C از دلفی بیشتره؟؟؟
                  خداوند جهاد را برای سرافرازی اسلام واجب کرد.
                  حضرت فاطمه (س)

                  دیدگاه


                    #10
                    پاسخ : یه سوال در مورد c#

                    سلام

                    من دلفی کار نکردم و نمی دونم چه جوریه.

                    اگر هم سرعتاشون با هم فرق داشته باشه خیلی زیاد نیست.

                    25 سال عمرمون الکی تلف شد حالا سرجمع بگیم 1 ماه هم به خاطر کند بودن نرم افزار مثلا C# تلف بشه .این که چیزی نیست.

                    اینو شوخی کردم .

                    نمی دون چی بگم!
                    موفق باشی!

                    دیدگاه


                      #11
                      پاسخ : یه سوال در مورد c#

                      ممنون رفیق.ولی می خواستم بدونم که #C در کارهای صنعتی خفن و پیچیده هم استفاده میشه یا نه؟
                      خداوند جهاد را برای سرافرازی اسلام واجب کرد.
                      حضرت فاطمه (س)

                      دیدگاه


                        #12
                        پاسخ : یه سوال در مورد c#

                        نوشته اصلی توسط ایمان
                        ممنون رفیق.ولی می خواستم بدونم که #C در کارهای صنعتی خفن و پیچیده هم استفاده میشه یا نه؟
                        C# برای کاربردهای مونیتورینگ و اندازه گیری خیلی عالیه، اما برای کاربردهای Real-Time و سطح پایین، VC انتخاب بهتریه.
                        There is nothing so practical as a good theory. — Kurt Lewin, 1951

                        دیدگاه


                          #13
                          یه سوال دیگه در مورد c#

                          سلام !!!!
                          ببخشید من دوباره سوال دارم ؟؟؟؟؟؟؟؟؟
                          اینکه این تابعی که اون دفعه نوشتید چطوری کار میکنه .اخه من میخواستم تو وقفه سریال خاصیت یه texbox رو عوض کنم ولی نتونستم
                          من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                          دیدگاه


                            #14
                            پاسخ : یه سوال در مورد c#

                            سلام!

                            کد بالایی اینجوری میشه:
                            کد:
                            // delegate for change text
                                public delegate void delSetLabelText(TextBox lbl, string txt);
                                // function for change text
                                private static void setLabelText(TextBox lb, string txt)
                                {
                                  if (lb.InvokeRequired)
                                    lb.Invoke(new delSetLabelText(setLabelText), new object[] { lb, txt });
                                  else
                                    lb.Text = txt;
                                }

                            وکد مربوط به ایونت این جوری میشه:
                            کد:
                             private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
                                {
                                  setLabelText(textBox1, serialPort1.ReadByte().ToString());
                                }

                            یه دونه textbox هم باید روی فرمت باشه با نام textBox1

                            دیدگاه

                            لطفا صبر کنید...
                            X