.NET 4.x Покажите пример работы делегата для параметризованного метода - C#
Формулировка задачи:
Пересмотрел кучу примеров - но везде делегаты показаны без параметров. Покажите, пожалуйста, пример работы делегата для параметризованного метода. Допустим, я по нажатию на кнопку, хочу вызвать какой-то метод с параметрами, и выполнить его в отдельном потоке, вернув результат в исходный поток.
Решение задачи: «.NET 4.x Покажите пример работы делегата для параметризованного метода»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Runtime.Remoting.Messaging; namespace ConsoleApplication2 { public class MyDelegateTest { delegate string GetString(params string[] myStrings); public event EventHandler operationCompleted; string strResult = ""; public void GetResult(string[] strArr) { GetString res = new GetString(GetStringResult); IAsyncResult itfAR; itfAR = res.BeginInvoke(strArr, new AsyncCallback(CallBack), null); } private string GetStringResult(params string[] arr) { StringBuilder sb = new StringBuilder(); foreach (string s in arr) sb.Append(s); Thread.Sleep(5000); return sb.ToString(); } void CallBack(IAsyncResult itfAR) { AsyncResult ar=(AsyncResult)itfAR; GetString del=(GetString)ar.AsyncDelegate; strResult = del.EndInvoke(itfAR); if (operationCompleted != null) operationCompleted(this, EventArgs.Empty); } public string StrResult { get { return strResult; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д