منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : بخصوص اداة BackgroundWorker
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته..
لدى كود يقوم بالتحقق من وجود تحديثات للبرنامج أم لا .
وهذا الكود بضعه داخل اداة BackgroundWorker وبضع فى الفورم لود هذا الكود

كود :
Control.CheckForIllegalCrossThreadCalls = False
       BackgroundWorker1.RunWorkerAsync()


لكن دائما يحدث مشاكل هكذا وللأسف لم أجد لها حل

(17-02-20, 05:24 PM)ابو روضة كتب : [ -> ]
السلام عليكم ورحمة الله وبركاته..
لدى كود يقوم بالتحقق من وجود تحديثات للبرنامج أم لا .
وهذا الكود بضعه داخل اداة BackgroundWorker وبضع فى الفورم لود هذا الكود

كود :
Control.CheckForIllegalCrossThreadCalls = False
       BackgroundWorker1.RunWorkerAsync()


لكن دائما يحدث مشاكل هكذا وللأسف لم أجد لها حل


المشلكة تدور عن محاولة التعامل مع كائن قيد الاستخدام

ضع الكود الموجود في BackgroundWorker1_DoWork لتتضح المشكله
إقتباس :المشلكة تدور عن محاولة التعامل مع كائن قيد الاستخدام

ضع الكود الموجود في BackgroundWorker1_DoWork لتتضح المشكله

منا فعلا وضعته بهذا المكان أخى
(18-02-20, 11:36 AM)ابو روضة كتب : [ -> ]
إقتباس :المشلكة تدور عن محاولة التعامل مع كائن قيد الاستخدام

ضع الكود الموجود في BackgroundWorker1_DoWork لتتضح المشكله
منا فعلا وضعته بهذا المكان أخى

لكن هذا الكود لا يوضع في BackgroundWorker1_DoWork

عاده يتم وضعهما في Form1_Load خصوصا السطر الاول

السطر الثاني ربما تحتاج تضعه في حدث زر اذا كنت لا تريد تشغيل BackgroundWorker في بداية الفورم
(18-02-20, 11:49 AM)alsalamoni كتب : [ -> ]لكن هذا الكود لا يوضع في BackgroundWorker1_DoWork

عاده يتم وضعهما في Form1_Load خصوصا السطر الاول

السطر الثاني ربما تحتاج تضعه في حدث زر اذا كنت لا تريد تشغيل BackgroundWorker في بداية الفورم

بحاول معاها وإن شاء الله نصل لحل لها...
ألم يوجد عند حضرتك حل أخر كالثريد مثلا ؟
وهذا هو الكود الذى اريد التحقق منه عند بداية تشغيل الفورم

كود :
Dim ox As New WebClient
       ox.Encoding = Encoding.UTF8
       Dim txt As String = ox.DownloadString(uri)
       Label1.Text = txt
(18-02-20, 12:08 PM)ابو روضة كتب : [ -> ]
(18-02-20, 11:49 AM)alsalamoni كتب : [ -> ]لكن هذا الكود لا يوضع في BackgroundWorker1_DoWork

عاده يتم وضعهما في Form1_Load خصوصا السطر الاول

السطر الثاني ربما تحتاج تضعه في حدث زر اذا كنت لا تريد تشغيل BackgroundWorker في بداية الفورم

بحاول معاها وإن شاء الله نصل لحل لها...
ألم يوجد عند حضرتك حل أخر كالثريد مثلا ؟
وهذا هو الكود الذى اريد التحقق منه عند بداية تشغيل الفورم

كود :
Dim ox As New WebClient
       ox.Encoding = Encoding.UTF8
       Dim txt As String = ox.DownloadString(uri)
       Label1.Text = txt

كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   Control.CheckForIllegalCrossThreadCalls = False
   BackgroundWorker1.RunWorkerAsync()
End Sub

Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
   Try
       Dim ox As New WebClient
       ox.Encoding = Encoding.UTF8
       Dim txt As String = ox.DownloadString(Uri)
       Label1.Text = txt
   Catch ex As WebException
       Label1.Text = "?"
   End Try
End Sub
(18-02-20, 12:19 PM)alsalamoni كتب : [ -> ]
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   Control.CheckForIllegalCrossThreadCalls = False
   BackgroundWorker1.RunWorkerAsync()
End Sub

Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
   Try
       Dim ox As New WebClient
       ox.Encoding = Encoding.UTF8
       Dim txt As String = ox.DownloadString(Uri)
       Label1.Text = txt
   Catch ex As WebException
       Label1.Text = "?"
   End Try
End Sub

الله يبارك بعمرك أخى الكريم فنان ماشاء الله...
جربت فكرتك الأولى ونفعت فعلا بأن أضع الكود الثانى داخل الزر وفعلا نجحت
ووضعت هذا فقط داخل اللود
..
Control.CheckForIllegalCrossThreadCalls = False
وسأقوم الآن بتجربة هذا الكود أيضاً بأمر الله..
أشكرك شكراً كثيراً أخى وربنا يسعدك.
(18-02-20, 12:27 PM)ابو روضة كتب : [ -> ]
(18-02-20, 12:19 PM)alsalamoni كتب : [ -> ]
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   Control.CheckForIllegalCrossThreadCalls = False
   BackgroundWorker1.RunWorkerAsync()
End Sub

Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
   Try
       Dim ox As New WebClient
       ox.Encoding = Encoding.UTF8
       Dim txt As String = ox.DownloadString(Uri)
       Label1.Text = txt
   Catch ex As WebException
       Label1.Text = "?"
   End Try
End Sub

الله يبارك بعمرك أخى الكريم فنان ماشاء الله...
جربت فكرتك الأولى ونفعت فعلا بأن أضع الكود الثانى داخل الزر وفعلا نجحت
ووضعت هذا فقط داخل اللود
..
Control.CheckForIllegalCrossThreadCalls = False
وسأقوم الآن بتجربة هذا الكود أيضاً بأمر الله..
أشكرك شكراً كثيراً أخى وربنا يسعدك.

العفو اخي
سؤال أخير لو تسمح بعيد عن عنوان الموضوع لكنه يخص مشروعى أيضاً:-
كيف أجعل ما يتم نسخه من روابط يتم وضعه داخل الخانة الموجودة فى ال InputBox
يعنى مثلا اذا نسخت رابط به كلمة playlists يتم وضع المنسوخ داخل InputBox
(18-02-20, 12:33 PM)ابو روضة كتب : [ -> ]
سؤال أخير لو تسمح بعيد عن عنوان الموضوع لكنه يخص مشروعى أيضاً:-
كيف أجعل ما يتم نسخه من روابط يتم وضعه داخل الخانة الموجودة فى ال InputBox
يعنى مثلا اذا نسخت رابط به كلمة playlists يتم وضع المنسوخ داخل InputBox

كود :
Dim dd As String = ""
If Clipboard.GetText.StartsWith("http") And Clipboard.GetText.Contains("playlists") Then dd = Clipboard.GetText
Dim ss = InputBox("", "", dd)

تم تحسين الكود
الصفحات : 1 2