SHARE
TWEET

threadinmain

a guest Feb 20th, 2020 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.IO;
  10. using System.Windows.Forms;
  11. using System.Threading;
  12. using System.Timers;
  13. using System.Reflection;
  14.  
  15. namespace Threading
  16. {
  17.     public partial class Form1 : Form
  18.     {
  19.         public string[] filePaths = new string[100];
  20.         public Search search = new Search();
  21.         public static bool itisdone = false;
  22.         public System.Windows.Forms.Timer timer1;
  23.         public int counter = 0;
  24.  
  25.        
  26.         public Form1()
  27.         {
  28.             InitializeComponent();
  29.         }
  30.  
  31.         private void TextBox1_TextChanged(object sender, EventArgs e)
  32.         {
  33.  
  34.         }
  35.  
  36.         private void ProgressBar1_Click(object sender, EventArgs e)
  37.         {
  38.  
  39.         }
  40.  
  41.         public void searchfiles(string foldername, string filename)
  42.         {
  43.             bool done = false;
  44.             while (done != true)
  45.             {
  46.                 filePaths = Directory.GetFiles(foldername, filename, SearchOption.AllDirectories);
  47.                 search.SetPath(filePaths);
  48.                 done = true;
  49.             }
  50.             if (done == true)
  51.             {
  52.                 itisdone = true;
  53.             }
  54.         }
  55.  
  56.         private void Form1_Load(object sender, EventArgs e)
  57.         {
  58.         }
  59.  
  60.         delegate void SetControlValueCallback(Control oControl, string propName, object propValue);
  61.         private void SetControlPropertyValue(Control oControl, string propName, object propValue)
  62.         {
  63.             if (oControl.InvokeRequired)
  64.             {
  65.                 SetControlValueCallback d = new SetControlValueCallback(SetControlPropertyValue);
  66.                 oControl.Invoke(d, new object[] { oControl, propName, propValue });
  67.             }
  68.             else
  69.             {
  70.                 Type t = oControl.GetType();
  71.                 PropertyInfo[] props = t.GetProperties();
  72.                 foreach (PropertyInfo p in props)
  73.                 {
  74.                     if (p.Name.ToUpper() == propName.ToUpper())
  75.                     {
  76.                         p.SetValue(oControl, propValue, null);
  77.                     }
  78.                 }
  79.             }
  80.         }
  81.  
  82.         private void progressfiles()
  83.         {
  84.             timer1 = new System.Windows.Forms.Timer();
  85.             timer1.Tick += new EventHandler(timer1_Tick);
  86.             timer1.Interval = 500;
  87.             timer1.Start();
  88.             SetControlPropertyValue(progressBar1, "value", counter);
  89.             bool done = false;
  90.             while (itisdone != true)
  91.             {
  92.                 if (itisdone == true)
  93.                 {
  94.                     done = true;
  95.                     if (done == true)
  96.                     {
  97.                         timer1.Stop();
  98.                         SetControlPropertyValue(progressBar1, "value", 100);
  99.                         string[] path = new string[100];
  100.                         search.SetPath(filePaths);
  101.                         path = search.GetPath();
  102.                         MessageBox.Show(path[0]);
  103.                         path[0] = null;
  104.                         filePaths[0] = null;
  105.                     }
  106.                    
  107.                 }
  108.            }
  109.         }
  110.        
  111.         public void timer1_Tick(object sender, EventArgs e)
  112.         {
  113.             counter++;
  114.             if (counter == 91)
  115.                 timer1.Stop();
  116.             SetControlPropertyValue(progressBar1, "value", counter);
  117.         }
  118.        
  119.  
  120.         private void Button1_Click(object sender, EventArgs e)
  121.         {
  122.             itisdone = false;
  123.             search.SetFilename(textBox1.Text);
  124.             string filename = search.GetFilename();
  125.             search.SetFoldername(textBox2.Text);
  126.             string foldername = search.GetFoldername();
  127.             Thread thread1 = new Thread(() => searchfiles(foldername, filename));
  128.             thread1.Start();
  129.             Thread thread2 = new Thread(progressfiles);
  130.             thread2.Start();
  131.             //textBox1.Text = "";
  132.             //textBox2.Text = "";
  133.         }
  134.     }
  135. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top