Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
191 / 198 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
1

Как узнать статус Task-a из другого метода

06.06.2014, 18:10. Просмотров 1619. Ответов 7
Метки нет (Все метки)


хочу сделать что то типа такого , но условия видимости не позволяют

C#
1
2
3
4
5
6
7
8
9
10
  private void button1_Click(object sender, EventArgs e)
        {
            if(task.IsCompleted) test("ssssssss");
        }
 
        public void test(string test)
        {
            Task task = new Task(()=>{........});
            task.Start();
        }
думал обману вынул Task из метода и обернул им метод

C#
1
2
3
4
5
6
  Task task = new Task(()=>test(t)); 
   
  private void button1_Click(object sender, EventArgs e)
        {
            if(task.IsCompleted) task.Start();
        }
обмануть не дает , Инициализатор поля не может обращаться к не статическому полю методу или свойству, как быть если аргумент передаваемый в метод зарание не известен?



да забыл Wait() не предлагать , мне нужно чтобы остальной код выполнился при вызове обработчика события находящийся в нем и обработчик события не ожидал

Добавлено через 25 минут
А главное помните когда никто не помогает рождаются костыли

C#
1
2
3
4
5
6
7
8
9
10
11
    bool taskflag = true;
        public void test(string test)
        {
            taskflag = false;
            Task task = new Task(() => {....., taskflag = true; });
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (taskflag) test("dsadsa");
        }
А хотелось бы по нормальному типа как у всех )
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2014, 18:10
Ответы с готовыми решениями:

[UWP] Возвращаемым типом асинхронного метода должен быть void, Task или Task<T>
Создал асинхронный метод. Он должен на выходе вывести объект который состоит из строк. Пишет...

Как узнать статус принтера?
Пожалуйста, помогите, кто может...! Имеется документ, который надо напечатать (конкретно -...

Как узнать статус потока?
добрый вечер, не подскажите, как узнать статус потока? Желательно, чтобы функция возвращала 0, если...

Не выставляется правильный статус Task при отмене через токен
Всем привет! Пытаюсь сделать отмену Task-а через токен. В результате выполнение метода нормально...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
7
984 / 882 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
06.06.2014, 18:15 2
А какой смысл от всего этого?
0
191 / 198 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
06.06.2014, 18:17  [ТС] 3
Spawn, мне нужно что бы обработчик работал постоянно , а поток который он запускает работал по мере завершения
0
984 / 882 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
06.06.2014, 18:54 4
Цитата Сообщение от EVG-1980 Посмотреть сообщение
да забыл Wait() не предлагать , мне нужно чтобы остальной код выполнился при вызове обработчика события находящийся в нем и обработчик события не ожидал
Коль уж используются Task, паттерн async/await со всеми его плюсами и минусами
0
Модератор
Эксперт .NET
5304 / 4100 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
06.06.2014, 21:16 5
Не совсем понял цель, но выходов вижу два:
1. Делегаты и AsyncCallBack
2. Task и событие, на которое надо подписаться.
0
191 / 198 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
07.06.2014, 11:10  [ТС] 6
insite2012,
Цитата Сообщение от insite2012 Посмотреть сообщение
Не совсем понял цель
Представь часы стрелочные событие получения тика 0,01 секунды и поменять его нельзя , отрисовка стрелки идет в другом потоке , если делать отрисовку с той же скоростью то буфер потоков умрет и отрисовка будет запаздывать да и нету смысла выводить с такой скоростью ибо для глаза это незаметно , вот и хочу запускать поток отрисовки по мере завершения предыдущего
0
984 / 882 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
07.06.2014, 14:24 7
Цитата Сообщение от EVG-1980 Посмотреть сообщение
вот и хочу запускать поток отрисовки по мере завершения предыдущего
Событием Paint зовётся...
0
Модератор
Эксперт .NET
5304 / 4100 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
07.06.2014, 14:59 8
EVG-1980, все равно ничего не понял... Вы можете четко обозначить цель? Что есть, что надо получить...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2014, 14:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Как узнать статус курсора мыши?
Кто может конкретно ответить? Как получить статус(что-то типа в этом роде) курсора, который...

Task, как узнать, задействованы ли все потоки?
Насколько я понял Task использует максимально эффективно все ресурсы компьютера (т. е. создает пул...

Как узнать статус сервера сайта игры?
Сообственно хочу узнать как получить статус сервера игры: (мона или нельзя играть) например: Если...

Подскажите как через винапи мне узнать статус файла -
не открыт ли он уже каким-либо приложением? Спасибо


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.