1) в чём плохо если пользоваться этой конструкцией?
public static void AcceptCallback(IAsyncResult ar)
{
listener = (Socket)ar.AsyncState;
handler_worker = listener.EndAccept(ar);
//обработка
Instance.listener.BeginAccept(AcceptCallback, listener);
}
интересует именно почему в примерах не вызывают BeginAccept в собственном Callback (тоесть в собственном потоке) а используют отдельный поток и событие
2) если я сделаю так
public void SendCurentWithoutTry(String cmd)
{
Encoding cp1251 = Encoding.GetEncoding(1251);
byte[] для_отправки=cp1251.GetBytes(cmd);
handle.BeginSend(cp1251.GetBytes(cmd), 0, для_отправки.Length, 0, new AsyncCallback(MySendCallback), handle);
}
private static void MySendCallback(IAsyncResult asyncResult)
{
try
{
Socket socket = (Socket)asyncResult.AsyncState;
int размер=socket.EndSend(asyncResult);
}
catch (Exception ex)
{
}
}
то при отправке длинных строк они не поделятся на фрагменты и не перемешаются? (то-есть отправится последовательно, непараллельно)
Заранее спасибо!!!