0

アプリケーションの処理の進行状況を通知するためにイベントを使用しています。しかし、ラベルを更新したり、更新のコードをデバッグする際に同時に何も更新されなかったりすると、更新のコードが実行されます

//update label 
void MUpdate_UpdateNotification(string Message)
{
    lblState.Invoke(UpdateLib.Notification.LabelDelegate, new object[] { lblState,  Message });
}
//delegate

public static LabeleAppendHandler LabelDelegate = new LabeleAppendHandler(UpdateLabel);
private static void UpdateLabel(System.Windows.Forms.Label lbl, string msg)
{
    lbl.Text = msg;
}

//how excute event
if (UpdateNotification!=null)
            UpdateNotification(Notification.GetNextStatus());
4

1 に答える 1

0

Windows Mobile は既定でシングル スレッドで実行されるため、Application.DoEvents(); を追加することもできます。問題を解決できます。

private static void UpdateLabel(System.Windows.Forms.Label lbl, string msg)
{
    lbl.Text = msg;
    Application.DoEvents();
}
于 2012-05-03T13:09:09.673 に答える