計算のためにいくつかの基本値を提供する必要があるようです:
void CalculateT0(DateTime calculationBase) {...}
void CalculateT1(DateTime calculationBase) {...}
void T0_ButtonClick(...)
{
CalculateT0(DateTime.Now);
}
void T1_ButtonClick(...)
{
CalculateT1(DateTime.Now);
}
void T0Plus1_ButtonClick(...)
{
var calculationBase = DateTime.Now;
CalculateT0(calculationBase);
CalculateT1(calculationBase);
}
更新します。
2 つのイベントの同時発生について。
最初の質問は、イベントの発生については何もありません。あなたは今そのような種類のコードを持っています:
void T0Plus1_ButtonClick(...)
{
T0_ButtonClick(...);
T1_ButtonClick(...);
}
これはorイベントの発火ではありません。このコードは、2 つのメソッドを呼び出すだけです (それらがどこかでイベント ハンドラーとして使用されている場合でも)。イベントが宣言されているオブジェクトの外部でイベントを発生させることはできません。Button0.Click
Button1.Click
2 つ目は、OS の性質上、2 つのメソッドを同時に呼び出すことはできません。これはリアルタイム OS ではありません。もちろん、スレッドはその命令を順番に実行するため、(あなたの例のように) 単一のスレッドを使用することは不可能ですが、複数のスレッドを使用することは不可能です.2 つのスレッドが同時に開始されるという保証はありません (そのような API はありません)。