2015-08-04 2 views
3

Я использую CefSharp 3 в своем приложении WPF для использования управления веб-браузером на основе хрома. Для вызова некоторого скрипта в html ExecutScriptAsync используется метод. Это EAP (основанный на событиях асинхронный шаблон), и я хочу, чтобы эта функция выполнялась синхронно, так как она выполнялась асинхронно, создает огромный беспорядок на моем выходе. Как это EAP я не могу await это. Если я жду его он выдает ошибку говоря Cannot await voidКак заставить методы EAP работать синхронно

Пожалуйста, помогите ..

+0

Вы должны использовать 'TaskFactory.FromAsync' для получения' Задачи ', которую вы можете ожидать. – Lee

+0

Я думаю, что это можно сделать только для APM (асинхронная модель программирования) – Akansha

+0

На самом деле это 'Observable.FromEventPattern' в библиотеке реактивных расширений. Вы должны использовать 'Observable.FromEventPattern (...). Возьмите (1) .ToTask()', чтобы создать «Задачу» из первого значения события. – Lee

ответ

1

Идея заключается в том, чтобы сделать это:

  1. сделать обработчик события сигнализируют событие
  2. Дождитесь события

Если вы используете, то TaskCompletionSource является хорошим «событием». Если вы собираетесь синхронно, я бы, вероятно, все еще использовал это и просто Wait о задаче, которая будет предоставляться TCS.

+0

Можете ли вы помочь мне с некоторыми примерами? или просто напишите мне ссылку на какой-нибудь хороший учебник, за которым я смогу следовать. – Akansha

+0

У меня нет ничего удобного. Какие-то конкретные проблемы? Является ли идея понятной? – usr

+0

Хорошо, я попробую пойти с предложенным подходом и вернуться к вам, если моя проблема будет продолжена. Спасибо. :) – Akansha

Смежные вопросы