Snažím sa zobraziť správu na štítku, ktorýpochádza zo spätného volania WCF. Môj štítok je v aplikácii formulára systému Windows. Problém je v tom, že štítok sa pri spustení spätného volania nenastavuje. Skúšal som namiesto štítku použiť schránku na správy a funguje to. Nie je možné zobraziť veľa kódu. Tu je funkcia spätného volania.
public void GetData(string message)
{
label1.Text = message; // This doesn"t work
MessageBox.Show(message); // This works fine
}
Môže niekto povedať, prečo sa štítok vo funkcii spätného volania nenastavuje.
odpovede:
0 pre odpoveď č. 1Udalosť spätného volania sa aktivuje non-GUI vlákno a máte prístup GUI ovládacích prvkov vo vlákne GUI, kto ich vytvoril. Na prístup ku kontrole môžete použiť Control.Invoke s MethodInvoker (label
) v obsluhe udalosti spätného volania.
public void GetData(string message)
{
label1.Invoke((MethodInvoker) delegate
{
label1.Text = message;
});
MessageBox.Show(message);
}