本文整理汇总了C#中IConnectionProvider.Start方法的典型用法代码示例。如果您正苦于以下问题:C# IConnectionProvider.Start方法的具体用法?C# IConnectionProvider.Start怎么用?C# IConnectionProvider.Start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IConnectionProvider
的用法示例。
在下文中一共展示了IConnectionProvider.Start方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddConnectionProvider
/// <summary>
/// Adds and starts the connection <paramref name="provider"/>.
/// </summary>
/// <param name="provider">The connection provider to add.</param>
/// <param name="mode">The <see cref="ExecutionMode"/> for <paramref name="provider"/>.</param>
/// <exception cref="ArgumentNullException"><paramref name="provider"/> is <c>null</c>.</exception>
public void AddConnectionProvider(IConnectionProvider provider, ExecutionMode mode = ExecutionMode.ConnectionOrder)
{
if (provider == null)
throw new ArgumentNullException ("provider");
lock (this.providers)
this.providers.Add (provider, mode);
IConnectionlessMessenger connectionless = provider as IConnectionlessMessenger;
switch (mode)
{
case ExecutionMode.ConnectionOrder:
provider.ConnectionMade += OnConnectionMade;
if (connectionless != null)
connectionless.ConnectionlessMessageReceived += OnConnectionlessMessageReceived;
break;
case ExecutionMode.GlobalOrder:
var q = this.mqueue;
if (q == null) {
q = new ConcurrentQueue<EventArgs>();
Interlocked.CompareExchange (ref this.mqueue, q, null);
}
provider.ConnectionMade += OnConnectionMadeGlobal;
if (connectionless != null)
connectionless.ConnectionlessMessageReceived += OnConnectionlessMessageReceivedGlobal;
break;
}
if (this.running)
provider.Start (this.messageTypes);
}