У меня есть приложение Windows Forms, которое в конце концов запустит SteamApp. Я хочу, чтобы мое приложение подождало, пока игра не найдет, и когда оно будет закрыто, чтобы сделать еще кое -что.
void LaunchViaSteam()
{
try
{
Process.Start(new ProcessStartInfo
{
FileName = "steam://rungameid/1086940",
UseShellExecute = true,
});
}
catch (Exception ex)
{
MessageBox.Show("An error occurred: " + ex.Message);
}
}
< /code>
Я уже пробовал что -то подобное: < /p>
private async void buttonStart_Click(object sender, EventArgs e)
{
Process process = new Process();
process.StartInfo.FileName = SteamDetection.GetSteamDirectory() + "\\steam.exe";
process.StartInfo.Arguments = "steam://rungameid/xxxxxx";
process.Start();
await process.WaitForExitAsync();
}
< /code>
Но это «не работает, как ожидалось». Иногда это просто не ждет, или он ждет, пока пара закроется. async Task WaitForBG3()
{
textBox1.Text = "Searching";
await Task.Run(async () =>
{
bool found = false;
while (!found)
{
Process[] ProcessList = Process.GetProcesses();
foreach (Process p in ProcessList)
{
if (p.ProcessName.Contains("bg3"))
{
found = true;
}
}
}
});
textBox1.Text = "found and wait for Exit";
await Task.Run(async () =>
{
bool running = false;
while (!running)
{
Process[] ProcessList = Process.GetProcesses();
foreach (Process p in ProcessList)
{
if (p.ProcessName.Contains("bg3"))
{
running = false;
}
else
{
running = true;
}
}
}
});
textBox1.Text = "Exit";
}
< /code>
Когда я тестирую его с блокнотом, он работает так же, как и должно, но когда я использую имя игры, это институтно запускает часть второй задачи. Даже когда игра запускается, работая при вызове < /p>
private async void buttonStart_Click(object sender, EventArgs e)
{
//LaunchViaSteam();
await WaitForBG3();
//do some mor stuff
}
У меня есть приложение Windows Forms, которое в конце концов запустит SteamApp. Я хочу, чтобы мое приложение подождало, пока игра не найдет, и когда оно будет закрыто, чтобы сделать еще кое -что.[code]void LaunchViaSteam() { try { Process.Start(new ProcessStartInfo { FileName = "steam://rungameid/1086940", UseShellExecute = true, }); } catch (Exception ex) { MessageBox.Show("An error occurred: " + ex.Message); } } < /code> Я уже пробовал что -то подобное: < /p> private async void buttonStart_Click(object sender, EventArgs e) { Process process = new Process(); process.StartInfo.FileName = SteamDetection.GetSteamDirectory() + "\\steam.exe"; process.StartInfo.Arguments = "steam://rungameid/xxxxxx"; process.Start(); await process.WaitForExitAsync(); } < /code> Но это «не работает, как ожидалось». Иногда это просто не ждет, или он ждет, пока пара закроется. async Task WaitForBG3() { textBox1.Text = "Searching"; await Task.Run(async () => {
bool found = false; while (!found) { Process[] ProcessList = Process.GetProcesses(); foreach (Process p in ProcessList) { if (p.ProcessName.Contains("bg3")) { found = true; } } } }); textBox1.Text = "found and wait for Exit"; await Task.Run(async () => { bool running = false; while (!running) { Process[] ProcessList = Process.GetProcesses(); foreach (Process p in ProcessList) { if (p.ProcessName.Contains("bg3")) { running = false; } else { running = true; } } } }); textBox1.Text = "Exit"; } < /code> Когда я тестирую его с блокнотом, он работает так же, как и должно, но когда я использую имя игры, это институтно запускает часть второй задачи. Даже когда игра запускается, работая при вызове < /p> private async void buttonStart_Click(object sender, EventArgs e) { //LaunchViaSteam(); await WaitForBG3(); //do some mor stuff } [/code] Есть идеи, почему?
У меня есть приложение Windows Forms, которое в конце концов запустит SteamApp. Я хочу, чтобы мое приложение подождало, пока игра не найдет, и когда оно будет закрыто, чтобы сделать еще кое -что.void LaunchViaSteam()
{
try
{
Process.Start(new...
У меня есть приложение Windows Forms, которое в конце концов запустит SteamApp. Я хочу, чтобы мое приложение подождало, пока игра не найдет, и когда оно будет закрыто, чтобы сделать еще кое -что.void LaunchViaSteam()
{
try
{
Process.Start(new...
У меня есть приложение Windows Forms, которое в конце концов запустит SteamApp. Я хочу, чтобы мое приложение подождало, пока игра не найдет, и когда оно будет закрыто, чтобы сделать еще кое -что.void LaunchViaSteam()
{
try
{
Process.Start(new...
Я пытаюсь запустить несколько неасинхронных методов одновременно, как показано ниже. Все функции определены в том же классе, что и функции-члены.
private string getEstimatedWaypointStart()
{
return id-1 ;
}
Использование Async/wait было представлено в Flask 2.0. ( await в RESTX Запрашивает обработчики?
Что -то вроде:
@api.route('/try-async')
class MyResource(Resource):
@api.expect(some_schema)
async def get(self):
result = await async_function()...