Я программирую API для своего программного обеспечения, у которого много интерфейсов, и мое программное обеспечение просто наследует их.
Я хочу, чтобы пользователи API, чтобы иметь возможность сделать что-то после X миллисекунд, что-то вроде этого:Действия API отсрочки
public void PerformAction(Action action, int delay)
{
Task.Run(async delegate
{
await Task.Delay(delai);
Form.BeginInvoke(action);
// I invoke on the Form because I think its better that the action executes in my main thread, which is the same as my form's thread
});
}
Теперь я знаю, что задача, как новую тему, я просто хочу знать, это плохо для моего программного обеспечения? Есть ли другой лучший способ?
Метода будет выполнен много, так что я не знаю, является ли этот подход является хорошим или плохим
Почему вы не просто изменить '' PerformAction' в асинхронном Task', а затем просто позвонить 'ждут Task.Delay(); action(); '? Запуск задачи просто для ее спящего режима, а затем попытаться вернуться к потоку пользовательского интерфейса. * Очень * свернуто –
Поскольку мне нужно, чтобы пользователи API использовали его так: Client.PerformAction (TheyAction, 1000); потому что не каждый пользователь будет знать использование задач/async – Haytam
На самом деле они это делают, потому что сама каркаса полна асинхронных методов. Вы не можете запрограммировать .NET, если вы не знаете о задачах –