امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اخطار thread!؟!
نویسنده پیام
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #1
اخطار thread!؟!
سلام
کد:
Public Class Form1
    Dim s As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SerialPort1.Open()
        SerialPort1.Write("OK")
    End Sub

    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        s = SerialPort1.ReadLine()
        TextBox1.Text = s
    End Sub
End Class

اون خطی که می خوام تکست باکس رو مقدار دهی کنم (رویداد recieve) ارور میده. عکسش رو گذاشتم.
چی میگه؟ برنامه میره رو یه thread دیگه ؟!
الیته من c++.net کار کردم نه vb.net
می گم جایی در مورد انتقال از وی بی به وی بی دات نت بحث کردین ؟


فایل‌(های) پیوست شده بندانگشتی (ها)
   

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۱۱-شهریور-۱۳۸۸, ۰۱:۲۴:۴۸، توسط محمد حسینی.)
۱۱-شهریور-۱۳۸۸, ۰۱:۲۲:۳۳
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: اخطار thread!؟!
خب معمولا واسه اینکه سرعت انتقال اطلاعات از AVR به ویندوز ست نیست و avr سرعت بالاتری داره به طور معمول واسه اینکه اطلاعات از دست نره از تکنیک handshoking استفاده میکنن که تو این روش از یه thread با priority بالا استفاده میشه و احتمالا ارور شما به همین خاطر هست
۱۱-شهریور-۱۳۸۸, ۱۴:۴۶:۲۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #3
RE: اخطار thread!؟!
سلام مبین عزیزم! خوبه یکی پیدا شد!

handshoking چیه؟ اگه منظورت همون handshake هست که غیر فعاله.
خب من چیکار کنم؟ فکر می کنم راهی هست که از اون thread با اولویت بالاتر که ایجاد میشه تکست باکس رو مقداردهی کرد. یه جا دیدم کدش رو ... انگار با دستور invoke بود ... منم که از دات نت سر در نمیارم!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۱۱-شهریور-۱۳۸۸, ۱۷:۰۹:۱۷، توسط محمد حسینی.)
۱۱-شهریور-۱۳۸۸, ۱۷:۰۸:۴۸
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: اخطار thread!؟!
سلام
سوات ما هم روزه گرفته همون دست تکانی که شما نوشتی درسته
(من هم DotNet کار نیستم راه که حتما هست دنبال ارتباط micro با com از طریق دلفی بودم که به این قضایا برخوردم فرصت نشد کاملش کنم)
یه کاری بکن یا priority مربوط به thread برنامتو high کن یا این مقدار دهی به TextBox رو تو یه thread با priority بالا بنویس ببین ok میشه

goodluck
۱۱-شهریور-۱۳۸۸, ۱۸:۱۵:۰۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #5
RE: اخطار thread!؟!
البته با تایمر و این چیزا میشه درستش کرد ولی مسخره میشه ...

من می خوام از وی بی 6 برم سراغ وی بی دات نت ... کسی مقاله ای در این مورد داره که تفاوت ها رو آموزش بده و ما رو راه بندازه؟ وی بی 6 خوب کار کردم ...

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۱۱-شهریور-۱۳۸۸, ۱۸:۵۵:۳۳
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #6
RE: اخطار thread!؟!
نه تایمر نمیتونه یه سری از اطلاعات lose میشه واسه همین از تکنیک handshaking استفاده میکنن
۱۱-شهریور-۱۳۸۸, ۲۱:۱۴:۰۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #7
RE: اخطار thread!؟!
نه!
منظورم این بود که یه تایمر بذارم از بیرون رویداد recieve تکست باکس رو مقداردهی کنه. تابع رویداد recieve تا آخر انجام بشه (اطلاعات رو تو متغیر بریزه) و بعد از بیرون بره تو تکست باکس.

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۱۱-شهریور-۱۳۸۸, ۲۳:۳۵:۳۵
ارسال‌ها
پاسخ
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #8
RE: اخطار thread!؟!
خطا cross thread مربوط به این میشه که object شما در Thread دیگری ساخته شده (معمولا main thread) و شما میخواهید به آن در Thread دیگر دسترسی پیدا کنید .
برای حل بایستی آن دستور در همان thread ی که ساخته شده است اجرا گردد .
کد:
[align=left]Private Delegate Sub myDelegate(ByVal text As String)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim aDelegate As New myDelegate(AddressOf Receive)
        Me.Invoke(aDelegate, "Hello")
    End Sub[/align]
این کار بدین دلیل است تا جلوی بنبست گرفته شود .

هر چی روش خوبه توش خوب نیست!
۱۴-شهریور-۱۳۸۸, ۱۶:۵۳:۵۲
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  کار با thread ها را چه جوري ياد بگيرم؟ farhawd 3 3,142 ۲۵-دى-۱۳۸۹, ۱۱:۳۰:۴۵
آخرین ارسال: lord_viper

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS