0

私はデリゲートに慣れていないので、次のコードで問題が発生するかどうかを確認したいと思います。私が書いたコードは共有変数を使用していませんが、次のように共有デリゲートを使用しています

       public delegate void delSaveData(string data1, string data2);
    private static delSaveData _delSaveData;
    static void Main(string[] args)
    {
        Thread td1 = new Thread(td1func);
        Thread td2 = new Thread(td2func);
        td1.Start();
        td2.Start();

    }
    private static void td1func()
    {
        while(true)
        {
            // do some operation
            _delSaveData= new delSaveData(SaveData);
            _delSaveData("someValueFromtd1", "someValueFromtd1");
        }
    }
    private static void td2func()
    {
        while(true)
        {
            // do some operation
            _delSaveData= new delSaveData(SaveData);
            _delSaveData("someValueFromtd2", "someValueFromtd2");
        }
    }
    private static void SaveData(string test1, string test2)
    {
        //Save Data in database
    }

デリゲートの新しいインスタンスが毎回作成されるため、コードは正常に機能するはずです。私は正しいですか?作成されたデリゲートのインスタンスの 1 つに問題が発生した場合、他のインスタンスに影響はありますか?

ご回答ありがとうございます。

4

2 に答える 2