本文整理汇总了C#中Inscribe.Authentication.AccountInfo.Test方法的典型用法代码示例。如果您正苦于以下问题:C# AccountInfo.Test方法的具体用法?C# AccountInfo.Test怎么用?C# AccountInfo.Test使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Inscribe.Authentication.AccountInfo
的用法示例。
在下文中一共展示了AccountInfo.Test方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AccountScheduler
public AccountScheduler(AccountInfo info)
{
this._accountInfo = info;
this.AddSchedule(new HomeReceiveTask(info));
this.AddSchedule(new MentionReceiveTask(info));
this.AddSchedule(new DirectMessageReceiveTask(info));
this.AddSchedule(new SentDirectMessageReceiveTask(info));
this.AddSchedule(new FavoritesReceiveTask(info));
this.AddSchedule(new MyTweetsTask(info));
Task.Factory.StartNew(() =>
{
try
{
// テストを飛ばす
ApiHelper.ExecApi(() => info.Test());
}
catch { }
});
ThreadHelper.Halt += () => this.StopSchedule();
}
示例2: ConnectCore
/// <summary>
/// ストリーミングAPIへ接続します。<para />
/// 接続に失敗した場合、規定アルゴリズムに沿って自動で再接続を試みます。<para />
/// それでも失敗する場合はfalseを返します。この場合、再接続を試みてはいけません。
/// </summary>
/// <param name="track">トラック対象キーワード</param>
private void ConnectCore(AccountInfo info, string track)
{
try
{
int failureWaitSec = 0;
while (true)
{
// 接続
try
{
using (var n = NotifyStorage.NotifyManually("@" + info.ScreenName + ": インターネットへの接続を確認しています..."))
{
while (!NetworkInterface.GetIsNetworkAvailable())
{
info.ConnectionState = ConnectionState.WaitNetwork;
ConnectionManager.OnConnectionStateChanged(EventArgs.Empty);
// ネットワークが利用可能になるまでポーリング
Thread.Sleep(10000);
}
}
using (var n = NotifyStorage.NotifyManually("@" + info.ScreenName + ": 接続のテストをしています..."))
{
info.ConnectionState = ConnectionState.WaitTwitter;
ConnectionManager.OnConnectionStateChanged(EventArgs.Empty);
try
{
if (!ApiHelper.ExecApi(() => info.Test()))
throw new Exception();
}
catch
{
throw new WebException("Twitterが応答を停止しています。");
}
}
using (var n = NotifyStorage.NotifyManually("@" + info.ScreenName + ": 接続しています..."))
{
info.ConnectionState = ConnectionState.TryConnection;
ConnectionManager.OnConnectionStateChanged(EventArgs.Empty);
System.Diagnostics.Debug.WriteLine("User Streams Connection with Track: " + track);
connection = streamingCore.ConnectNew(
info, StreamingDescription.ForUserStreams(TwitterDefine.UserStreamsTimeout,
track: track, repliesAll: info.AccountProperty.UserStreamsRepliesAll));
}
}
catch (WebException we)
{
if ((int)we.Status == 420)
{
// 多重接続されている
throw new WebException("@" + info.ScreenName + ": 多重接続されています。接続できません。");
}
if (we.Status == WebExceptionStatus.Timeout) // タイムアウト例外なら再試行する
{
NotifyStorage.Notify("@" + info.ScreenName + ": User Streams接続がタイムアウトしました。再試行します...");
}
else
{
string descText = we.Status.ToString();
if (we.Status == WebExceptionStatus.UnknownError)
{
descText = we.Message;
}
if (we.Status == WebExceptionStatus.ProtocolError)
{
var hwr = we.Response as HttpWebResponse;
if (hwr != null)
{
descText += " - " + hwr.StatusCode + " : " + hwr.StatusDescription;
}
}
throw new WebException("接続に失敗しました。(" + descText + ")");
}
}
catch
{
throw;
}
if (connection != null)
{
// Connection successful
info.ConnectionState = ConnectionState.Connected;
ConnectionManager.OnConnectionStateChanged(EventArgs.Empty);
return;
}
if (failureWaitSec > 0)
{
if (failureWaitSec > Setting.Instance.ConnectionProperty.UserStreamsConnectionFailedMaxWaitSec)
{
throw new WebException("User Streamsへの接続に失敗しました。");
//.........这里部分代码省略.........