.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; }
}
}
}