2017-07-16 4 views
0

スレッド内でこのメソッドを実行しようとしています。スレッドからコンストラクタを使用してメソッドを実行する

public static void CreateTable(string tableSegment, string ConString) 
    { 
     string strCreate = "CREATE TABLE " + tableSegment + " (CVR text,Navn text, Firma text, Nummer text, Addresse text, Postnr text, Bynavn text, Noter text, Email text, LastCallDato text, NextCallDato text, CallStatus text, MailSendt text, UniqueID text);"; 
     using (MySqlConnection conDatabase = new MySqlConnection(ConString)) 
     { 
      using (MySqlCommand cmdDatabase = new MySqlCommand(strCreate, conDatabase)) 
      { 
       conDatabase.Open(); 
       cmdDatabase.ExecuteNonQuery(); 
       conDatabase.Close(); 
      } 
     } 
    } 

だから、次のようになります。

Thread T = new Thread(MysqlBlocks.CreateTable(txtSegment.Text, ConString)); 
        T.Start(); 

問題は、私はそこにコンストラクタを渡すことはできませんということのようです。

答えて

0

内部にコンストラクタを含む関数を作成します。新しいスレッドで起動します。

+0

サンプルを提供できますか? – Taco2

+0

public void func(){MysqlBlocks.CreateTable(txtSegment.Text、ConString)};そして、スレッドT =新しいスレッド(func)。 –

+0

もちろん、ありがとう! – Taco2

0

古い学校コードpre .Net 4.X(Thread is Dead)を書いていない限り、スレッドをスピンアップする新しい方法をお勧めします(Task.Run vs BackgroundWorker):

Task.Run(() => CreateTable(txtSegment.Text, ConString)); 
関連する問題