我正在嘗試將ReceiveTimeout屬性設定為一個System.Net.Sockets.Sockets物件。我沒有例外,但價值并沒有堅持。例子:
m_socket = new Socket(RemoteEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
m_socket.ReceiveTimeout = TimeSpan.FromSeconds(1).Milliseconds;
Debug.WriteLine($"Set ReceiveTimeout to {m_socket.ReceiveTimeout} ms");
輸出:
Set ReceiveTimeout to 0 ms
我知道當我設定此屬性時,幕后發生了很多事情,但如果出現故障,它似乎是沉默的。為什么價值不堅持?
uj5u.com熱心網友回復:
您將值設定為 0,因為這TimeSpan.Milliseconds是 1 秒時間跨度的值。該Milliseconds屬性實際上是“亞秒級毫秒組件” - 與(例如)Minutes屬性為TimeSpan.FromHours(1.5)30,而不是 90 的方式相同。來自檔案TimeSpan.Milliseconds:
當前 TimeSpan 結構的毫秒組件。回傳值的范圍是 -999 到 999。
如果您想要TimeSpan 中的總TotalMilliseconds毫秒數,請使用該屬性,然后強制轉換為int.
例子:
using System;
var timeSpan = TimeSpan.FromSeconds(1);
Console.WriteLine(timeSpan.Milliseconds); // Prints 0
Console.WriteLine((int) timeSpan.TotalMilliseconds); // Prints 1000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482901.html
