Я действительно хочу знать, есть ли способ определить переменные действия async? Или какой-то альтернативный метод?
public System.Action myAction;
public async System.Action myAsyncAction;
void Start()
{
// normal action
myAction += () =>
{
Debug.Log("Inject some code in runtime..");
};
// I want something like this that support wait time..
myAsyncAction += () =>
{
await Task.Delay(2000f);
Debug.Log("Inject some code in runtime..");
};
}
Тот случай, о котором говорил Клинтон. Исправлена проблема. На самом деле я искал способ добавить код в тело во время выполнения. :)) спасибо вам, ребята.





Я использовал Func<Task> в прошлом. НАПРИМЕР:
Func<Task> asyncMethod = async () =>
{
await Task.Delay(1000);
Console.WriteLine("done here");
};
await asyncMethod();
Думаю, может быть лучший суффикс, чем "..Action"
Достаточно честно @CaiusJard, изменено на asyncMethod
Между asyncAction и asyncMethod я бы предпочел первое. :-)
Но Action предназначен для
void, а ожидаемые объекты возвращают что-то вроде Task, если у них нет значения результата, или Task<T>, если у них есть значение результата. В любом случае Task является возвращаемым значением, поэтому они не являются недействительными (не действиями). Не стремитесь к способам ожидания пустоты ;)