تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مشكلة مغلبانى جدا من فترة مع هذا الكود Do While
#6
(18-08-17, 03:53 AM)سعود كتب :
Timer1_Tick
طيب اخي الكريم
هل انت متاكد ان المؤقت يصلح ان يستخدم  لمثل هذه الاجراءات؟
هو يعد كل مدة تحددها ولا يلتفت لانتهاء اجراء معين لكي ينتقل لاخر.
على كل حال لو يطلع احد ممن لديه خبرة ربما يعطيك حل افضل  واسهل.
الكود التالي (وحسب خبرتي البسيطة) يناسب ان تضعه بمسارThread مستقل اما Backgroundworker او بطريقة عادية.
كود :
[align=center]  Try[/align]
[align=center]            For i As Integer = 0 To DataGridView1.RowCount[/align]
[align=center][/align]
[align=center]                WebBrowser1.Navigate(DataGridView1.Rows(i).Cells(0).Value.ToString())[/align]
[align=center][/align]
[align=center]                WebBrowser1.Document.GetElementById("u_0_0").InnerText = TextBox1.Text[/align]
[align=center]                WebBrowser1.Document.GetElementById("view_post").InvokeMember("click")[/align]
[align=center][/align]
[align=center]                Await Task.Delay(CInt(Fix(NumericUpDown1.Value)) * 1000)[/align]
[align=center]                i = i + 1[/align]
[align=center]            Next[/align]
[align=center]        Catch ex As Exception[/align]
[align=center]            'Throw[/align]
[align=center]            'MsgBox("انتهت عملية النشر", MsgBoxStyle.Information, "لا تنسى الصلاة على النبى محمد")[/align]
[align=center]        End Try[/align]

لو تجرب تطبيق فكرة العد بحلقة For  ضمن مؤقت على اداة بسيطة مثل Listbox ربما تتفاجا بالنتيجة.
حاولت اجرب وضع كلمة Async لاجراء المؤقت الذي لدي قلت لعله يغير من اسلوبه ولكنه لم يعمل.
ربما هو السر الذي تبحث عنه جرب  ماقلته لك وباذن الله ستنحل  المشكلة.

هذا الكود بالسى شارب ويعمل تمام لكنه بالسيلينام يمكن تعرف الحل من خلاله

كود :
   try
           {

         


           for (int i = 0; i < dataGridView1.RowCount; i++)
           {
               post.Navigate().GoToUrl(dataGridView1.Rows[i].Cells[0].Value.ToString());
               title = post.Title;
               IWebElement postes = post.FindElement(By.Id("u_0_0"));
               IWebElement postbox = post.FindElement(By.Name("view_post"));
               postes.SendKeys(textBox3.Text);
               postbox.Click();
               await Task.Delay((int)numericUpDown1.Value * 1000);
               //await Task.Delay(1000);
           }
       }
             
           catch (Exception)
           {
               
               throw;
           }
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم