![]() |
|
بوتن ايقاف BackgroundWorker - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : بوتن ايقاف BackgroundWorker (/showthread.php?tid=20803) الصفحات:
1
2
|
بوتن ايقاف BackgroundWorker - rabeh.ram - 21-06-17 السلام عليكم اخوان ارجو منكم مساعدتي بكود يجعل الاجراءات التي بداخل BackgroundWorker تتوقف بمجرد الضغط على زر معمول للايقاف RE: بوتن ايقاف BackgroundWorker - silverlight - 22-06-17 ضع لنفسك شرطا أو مجموعة شروط عبارة عن Boolean إن تحققت استخدم Exit Sub تخرج بها من الروتين ٍالذي ينتمي الي BackgroundWorker وهذا مرتبط بنوعية الوظيفة التي يقوم بها BackgroundWorker RE: بوتن ايقاف BackgroundWorker - rabeh.ram - 22-06-17 (22-06-17, 03:51 AM)silverlight كتب : ضع لنفسك شرطا أو مجموعة شروط عبارة عن Boolean إن تحققت استخدم Exit Sub تخرج بها من الروتين ٍالذي ينتمي الي BackgroundWorker لو تكرمت اخي ان توضح لي بمثال اذكان بالامكان او اضع الكود خاصتي و تعدل عليه RE: بوتن ايقاف BackgroundWorker - سعود - 22-06-17 مارايك بالاطلاع على الرد هذا RE: بوتن ايقاف BackgroundWorker - rabeh.ram - 22-06-17 هذا الكود احب ان اعمل بوتن ثاني لايقاف عمله Private Sub backwork_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles backwork.DoWork Try Dim sourceLines() As String = IO.File.ReadAllLines(ALLWGS) ' header ------------------------------ Me.StatusLabel.Text = "header Traitement..." Dim header(21 - 1) As String Array.Copy(sourceLines, 0, header, 0, 21) Me.StatusLabel.Text = "header completed" ' details ----------------------------- Me.StatusLabel.Text = "details Traitement..." Dim details(sourceLines.Count - 21 - 1) As String Array.Copy(sourceLines, 21, details, 0, sourceLines.Count - 21) For i = 0 To details.Length - 1 details(i) = details(i).Substring(21, 4) & " - " & details(i) Next Array.Sort(details) For i = 0 To details.Length - 1 details(i) = details(i).Substring(7) Next Me.StatusLabel.Text = "header completed" 'splitfiles --------------------------------------------- swat_star_to_end() Dim bloc_of_swat As New List(Of String)() Dim files() As String = IO.File.ReadAllLines(STATISTIQUE) For i As Integer = indax_sw_star.Text To indax_sw_end.Text bloc_of_swat.Add(files(i)) Next For Each f As String In bloc_of_swat If f.Trim <> "" Then Dim filename As String = f.Substring(0, 5) Me.StatusLabel.Text = filename & " Traitement..." Dim flagStart As Integer = Val(f.Substring(6, 4)) Dim flagEnd As Integer = Val(f.Substring(11, 4)) Dim flagCount As Integer = Val(f.Substring(16)) Dim range = Enumerable.Range(flagStart, flagEnd - flagStart + 1) Dim RegexPattern As String = "^\w(\d{3})\s\s\s\s\s\s\s\s\s\s\s\s\s(\d{4})(" & String.Join("|", range) & ")\s.+" Dim ms As MatchCollection = Regex.Matches(String.Join(vbNewLine, details), RegexPattern, RegexOptions.Multiline) Dim resultLines = (From x As Match In ms Select x.Value).ToArray If flagCount <> ms.Count Then ListBox1.Items.Add(filename) End If Dim lines() As String = IO.File.ReadAllLines("header.HDR") Dim resultFile As String = String.Empty If lines.Length < 20 Then MsgBox("header lines infirieur a 20 vrifier votre heder") Me.StatusLabel.Text = "Erreur au niveau de header taille." Else For i = 0 To 19 resultFile &= lines(i) & vbNewLine Next resultFile &= "" & vbNewLine resultFile &= String.Join(vbNewLine, resultLines) & vbNewLine IO.File.WriteAllText(filename & ".wgs", resultFile) Me.StatusLabel.Text = filename & " completed" Me.StatusLabel.Text = "Tout les Swat calculent avec succès." If Me.StatusLabel.Text = "Tout les Swat calculent avec succès." Then sw_star.Visible = False sw_end.Visible = False End If End If End If Next Catch ex As Exception Me.StatusLabel.Text = "Errer." MsgBox(ex.Message) End Try StatusProgressBar.Visible = False Me.Button1.Enabled = True Me.Button2.Enabled = True Me.TextBox1.Enabled = True Me.TextBox2.Enabled = True Me.TextBox3.Enabled = True Me.TextBox4.Enabled = True End Sub RE: بوتن ايقاف BackgroundWorker - سعود - 22-06-17 هل تقصد ايقاف وتجاهل كافة التغييرات؟ يعني لو تم تشغيله يبدا كما انه اول مرة؟ بكل الاحوال لا تنسى تضبط الاعدادات كما تشاهد بالصورة لو جوابك نعم PHP كود : Public Class Form1RE: بوتن ايقاف BackgroundWorker - rabeh.ram - 22-06-17 حتى يتضح المطلوب اكثر طلبي هو الشطر الثاني من موضوع كنت ظرحته سابقا على المنتدى زالذي يحمل عنوان مساعدة في عمل برنامجمساعدة في عمل برنامج وكانت الاجابة الوافية والشافية من الاخ [b]السرور [/b]جزاه الله الف عبر كود يحوي BackgroundWorker ولاني مبتدى في البرمجة لم افهم التعامل مع BackgroundWorker وانا حاليا اريد ان اعمل زر يجعل BackgroundWorker يتوقف هذا الطرح لابراز الاشكال و ليكون الكود الذي اعمل عليه مفهوم ارجو منكم زيارة الموضوع مساعدتي بكود لايقاف BackgroundWorker الموضوع على الرابط التالي بالمنتدى http://vb4arb.com/vb/showthread.php?tid=18127 RE: بوتن ايقاف BackgroundWorker - سعود - 22-06-17 إقتباس :مساعدة في عمل برنامجمهذا الموضوع عن انشاء bgw وقت التشغيل ومشاركتي عنها وقت التصميم جرب طريقتنا وستلاحظ ان الامر سهل. واذا كنت فقط تريدها تحديدا اخبرنا عن اخر نقطة تود الانطلاق منها. RE: بوتن ايقاف BackgroundWorker - silverlight - 22-06-17 الأخ Rabeh backgroundworker من عائلة Threading وهو لكي يعمل يحتاج الي تايمر لذلك ستجد ان مشكلتك هي ايقاف التايمر دعني اوضح لك الأمر بمثال بسيط جدا مختلف عن Backgroundworker و لكنه مشابه تماما لما يقوم به Backgroundworker لنفترض جدلا انك تريد تغيير خلفية لون الفورم الي اللون الأسود مثلا وذلك من خلال تايمر انت هنا تقوم بإضافة التايمر ثم تقوم بتشغيله ومن خلاله تقوم بتغيير لون خلفية الفورم بأي لون تحدده لكن حينما تريد ان تلغي العملية بعد تنفيذها هنا عليك ان تقوم بإيقاف التايمر و تعيد كل شئ الي طبيعته الاصلية لو فكرت في الأمر قليلا ستكتشف انك تستطيع الاستغناء عن backgroundworker تماما و تستبدله بتايمر و اعتقد سكون اسهل لك التعامل مع التايمر الكود التالي ه تنفيذ عملي لما قلته لك افتح مشروع اضف له 2 باتون احدهما سيتكفل بتشغل التايمر و الاخر سيقوم بإيقاف التايمر PHP كود : Public Class Form1اخيرا في الحدث ForrmClosing عليك بعمل Dispsoe للتايمر و لقد كتبت لك شكل الروتين Dispose في الكود اعلاه او ممكن بدلا من استخدام تايمر بهذا الاسلوب تستطيع ان تضيف تايمر عادي بلا منه للفورم RE: بوتن ايقاف BackgroundWorker - rabeh.ram - 22-06-17 شكرا لك اخي [b] silverlight انت والاخ سعود لقد جربت كل اقتراحتكما ولكن لم تنفع[/b] [b] الخلال ليس في افكاركما حاشا لله انتما مشكورين على الجهد بل الخلال في تطبيقي انا للاكواد لم اعرف التعامل معها لكوني مبتدى في البرمجة اضافة الى ذلك تصادفت مع BackgroundWorker المعقد [/b] [b]ارجو منكما لو تكرمتما تقديم المزيد من العون بادراج الاكواد المقترحة مع كودي الوارد في الموضوع و التجريب ربما يظهر لكما الخلال و انتما الاعلم مني [/b] [b]اسمحولي على مغالتي في طلبي لكن صدقوني هذا البرنامج يعني لي الكثير لانه يوفر على عناء كبير في عملي[/b] |