csharp C#5.0 async / awaitでの主要メソッドの书き方
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp C#5.0 async / awaitでの主要メソッドの书き方相关的知识,希望对你有一定的参考价值。
class Program
{
static void Main()
{
//
// Mainメソッドはasync付けられないので
// 一階層挟んでタスクを待ち合わせするようにする
//
ExecMainProc().Wait();
}
internal static async Task ExecMainProc()
{
try
{
//
// 実際のメイン処理を待機する処理を記述.
// ここはMainメソッドではないのでawaitが使える
//
await new Program().Exec();
}
catch (Exception ex)
{
//
// Mainメソッドに対して例外を飛ばさないよう
// ここで例外を捕らえる。awaitしているので
// AggregateExceptionをキャッチする必要は無い
//
Console.WriteLine(ex);
}
}
internal async Task Exec()
{
//
// 処理を記述.
//
// 以下では例としてStackExchange.Redisを
// 利用してRedisに非同期アクセスしている.
//
var connection = await ConnectionMultiplexer.ConnectAsync("接続文字列");
var db = connection.GetDatabase();
await db.StringSetAsync("Key1", "日本語の文字列");
var jsonString = GetJsonString();
await db.StringSetAsync("Key2", jsonString);
var result = await db.StringGetAsync("Key1");
var result2 = await db.StringGetAsync("Key2");
Console.WriteLine(result);
Console.WriteLine(result2);
}
}
以上是关于csharp C#5.0 async / awaitでの主要メソッドの书き方的主要内容,如果未能解决你的问题,请参考以下文章
csharp Async C#program.cs
[译] C# 5.0 中的 Async 和 Await (整理中...)
如何正确理解.NET 4.5和C#5.0中的async/await异步编程模式
C#与C++的发展历程第三 - C#5.0异步编程巅峰
.NET 5.0+ 无需依赖第三方 原生实现定时任务
C#5.0异步