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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы