本文整理汇总了C#中SelectMode.ToString方法的典型用法代码示例。如果您正苦于以下问题:C# SelectMode.ToString方法的具体用法?C# SelectMode.ToString怎么用?C# SelectMode.ToString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SelectMode
的用法示例。
在下文中一共展示了SelectMode.ToString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Poll
/// <include file='doc\Socket.uex' path='docs/doc[@for="Socket.Poll"]/*' />
/// <devdoc>
/// <para>
/// Determines the status of the socket.
/// </para>
/// </devdoc>
public bool Poll(int microSeconds, SelectMode mode) {
if (CleanedUp) {
throw new ObjectDisposedException(this.GetType().FullName);
}
FileDescriptorSet fileDescriptorSet = new FileDescriptorSet(1);
fileDescriptorSet.Array[0] = m_Handle;
TimeValue IOwait = new TimeValue();
//
// negative timeout value implies indefinite wait
//
if (microSeconds>=0) {
MicrosecondsToTimeValue(microSeconds, ref IOwait);
}
int errorCode;
switch (mode) {
case SelectMode.SelectRead:
errorCode = (microSeconds>=0)
? UnsafeNclNativeMethods.OSSOCK.select(
0,
ref fileDescriptorSet,
IntPtr.Zero,
IntPtr.Zero,
ref IOwait)
: UnsafeNclNativeMethods.OSSOCK.select(
0,
ref fileDescriptorSet,
IntPtr.Zero,
IntPtr.Zero,
IntPtr.Zero);
break;
case SelectMode.SelectWrite:
errorCode = (microSeconds>=0)
? UnsafeNclNativeMethods.OSSOCK.select(
0,
IntPtr.Zero,
ref fileDescriptorSet,
IntPtr.Zero,
ref IOwait)
: UnsafeNclNativeMethods.OSSOCK.select(
0,
IntPtr.Zero,
ref fileDescriptorSet,
IntPtr.Zero,
IntPtr.Zero);
break;
case SelectMode.SelectError:
errorCode = (microSeconds>=0)
? UnsafeNclNativeMethods.OSSOCK.select(
0,
IntPtr.Zero,
IntPtr.Zero,
ref fileDescriptorSet,
ref IOwait)
: UnsafeNclNativeMethods.OSSOCK.select(
0,
IntPtr.Zero,
IntPtr.Zero,
ref fileDescriptorSet,
IntPtr.Zero);
break;
default:
throw new NotSupportedException(SR.GetString(SR.net_SelectModeNotSupportedException, mode.ToString()));
};
//
// if the native call fails we'll throw a SocketException
//
if (errorCode==SocketErrors.SocketError) {
//
// update our internal state after this socket error and throw
//
SocketException socketException = new SocketException();
UpdateStatusAfterSocketError();
throw socketException;
}
if (fileDescriptorSet.Count==0) {
return false;
}
//return (fileDescriptorSet.Count!=0);
return fileDescriptorSet.Array[0]==m_Handle;
}