Example #1
0
 /// <summary>
 /// Balthazar の初期化コード
 /// </summary>
 private void Initialize()
 {
     var queries = queryMap.Keys.ToArray();
     queryMap.Clear();
     InformServer.Report("アカウントの情報を読み込んでいます...");
     foreach (var ae in AccountModel.GetAccountElements())
     {
         var ri = new ReceiveInterface(ae);
         var remain = ri.TryAddQuery(queries).ToArray();
         foreach (var q in queries.Except(remain))
         {
             System.Diagnostics.Debug.WriteLine("Query " + q + " is accepted in " + ri.UseAccount.CredentialInfo.UserScreenName);
             queryMap.Add(q, ri);
             queryReferenceCount.Add(q, 1);
         }
         queries = remain;
         streamingMap.Add(ae.CredentialInfo.UserScreenName, ri);
         RegisteredReceiveInterface(ri);
     }
     Parallel.ForEach(
         streamingMap,
         (spair) =>
         {
             Parallel.Invoke(() =>
             {
                 InformServer.Report("@" + spair.Key + ": ユーザー情報を受信しています...");
                 spair.Value.UseAccount.RefreshUserInfoAll();
             },
             () =>
             {
                 spair.Value.Begin();
                 InformServer.Report("@" + spair.Key + ": 接続を開始しました。");
             });
         });
 }