member x.Channel() =
let mailbox () =
let chan = Channel.CreateUnbounded<unit>()
let rec loop () =
async {
do! chan.Reader.ReadAsync().AsTask() |> Async.AwaitTask
return! loop ()
}
loop () |> Async.StartImmediate
chan
let processors = [| for _ in 0 .. 100_000 -> mailbox () |]
let messagesCount = 1_000_000
let random = Random(messagesCount)
for i in 0 .. messagesCount do
let t = random.Next(0, 100_000 - 1)
let mailbox = processors.[t]
mailbox.Writer.WriteAsync(()) |> ignore
Мне интересно
Vladislav
Vagif
Nikolay
Vasily
Ayrat
Крылатый
Hog