コード例 #1
0
ファイル: MessageQueue.cs プロジェクト: zgren/dp2
 public async Task PushAsync(List <string> texts,
                             CancellationToken token = default)
 {
     using (var releaser = await _databaseLimit.EnterAsync())
     {
         using (var context = new QueueContext(_databaseFileName))
         {
             foreach (string text in texts)
             {
                 context.Items.AddRange(BuildItem(text));
             }
             await context.SaveChangesAsync(token).ConfigureAwait(false);
         }
     }
 }
コード例 #2
0
ファイル: MessageQueue.cs プロジェクト: zgren/dp2
 public async Task PushAsync(List <byte[]> contents,
                             CancellationToken token = default)
 {
     using (var releaser = await _databaseLimit.EnterAsync())
     {
         using (var context = new QueueContext(_databaseFileName))
         {
             foreach (var content in contents)
             {
                 // 注意,这里每次 Add() 以后都要及时 SaveChanges()。否则 ID 的顺序会发生混乱
                 var items = BuildItem(content);
                 foreach (var item in items)
                 {
                     context.Items.Add(item);
                     await context.SaveChangesAsync(token);
                 }
             }
         }
     }
 }