Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 19:36 05.07.25 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема Re: c# - превръщане на асинхронен метод в синхронен [re: Pekoнcтpykтop]
Автор Pekoнcтpykтop (дарвинист)
Публикувано05.04.13 11:30  



Добре, няма да рафинирам нещата до няква теоретична постановка, направо ви пляскам кода от проекта.


public bool GetUserSubscribeMethod(User user)
{
if (user == null)
throw new ArgumentException(ContractConstants.QelloService.BILLING_USER_STATUS);

bool result = false;
string req_params = "token=" + user.Token.AccessToken;
AutoResetEvent eventCompleted = new AutoResetEvent(false);

Thread thread = new Thread(start =>
{
PostJsonRequest<UserSubscribeStatus>(ContractConstants.QelloService.BILLING_USER_STATUS, req_params, response =>
{
if ((response.Error == null) && (response.Data != null))
{
result = true;

if ((response.Data.ActiveRecurring != null) &&
(response.Data.ActiveRecurring.Length > 0))
{
user.PaymentMethod = response.Data.ActiveRecurring[0].Trim();
user.SubscribeStatus.IsSubscribed = user.PaymentMethod != "";
}
}

eventCompleted.Set();
});
});

thread.Start();
eventCompleted.WaitOne();

return result;
}


PostJsonRequest, както може да се досетите, е асинхронен метод на базовия клас, който вика делегат, когато приключи. Обаче изникна случай, в който трябва задължително да се изчака резултат, защото програмата не може да работи без данните от заявката. Проблема, който възникна е, че WaitOne блокира thread, което не знам как точно и защо става. Съответно eventCompleted.Set() никога не се изпълнява и програмата зависва.



Цялата тема
ТемаАвторПубликувано
* c# - превръщане на асинхронен метод в синхронен Pekoнcтpykтop   04.04.13 19:52
. * Re: c# - превръщане на асинхронен метод в синхроне zaphod   04.04.13 19:59
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   04.04.13 21:32
. * Re: c# - превръщане на асинхронен метод в синхронен chupac   04.04.13 22:00
. * Re: c# - превръщане на асинхронен метод в синхронен Цар Изроуд   05.04.13 01:43
. * Re: c# - превръщане на асинхронен метод в синхронен Pekoнcтpykтop   05.04.13 11:30
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   05.04.13 13:53
. * Re: c# - превръщане на асинхронен метод в синхронен Pekoнcтpykтop   05.04.13 14:30
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   05.04.13 15:16
. * Re: c# - превръщане на асинхронен метод в синхронен Cин Mapмoт   05.04.13 16:43
. * Re: c# - превръщане на асинхронен метод в синхронен Pekoнcтpykтop   05.04.13 18:27
. * Re: c# - превръщане на асинхронен метод в синхронен chupac   05.04.13 19:08
. * Re: c# - превръщане на асинхронен метод в синхронен Cин Mapмoт   05.04.13 21:04
. * Re: c# - превръщане на асинхронен метод в синхронен AMД   05.04.13 21:18
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   05.04.13 21:45
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   06.04.13 00:05
. * Re: c# - превръщане на асинхронен метод в синхронен Pekoнcтpykтop   06.04.13 00:08
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   06.04.13 00:19
. * Re: c# - превръщане на асинхронен метод в синхронен Pekoнcтpykтop   06.04.13 00:23
. * Re: c# - превръщане на асинхронен метод в синхронен Aaron   06.04.13 00:39
. * момент pesho.konia   06.04.13 00:54
. * решение pesho.konia   06.04.13 01:13
. * Re: c# - превръщане на асинхронен метод в синхронен AMД   06.04.13 00:39
. * Re: c# - превръщане на асинхронен метод в синхронен _NiL^_   06.04.13 01:36
. * Re: c# - превръщане на асинхронен метод в синхронен _NiL^_   06.04.13 01:38
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.