ext_214550 ([identity profile] faceted-jacinth.livejournal.com) wrote in [personal profile] 109 2009-12-02 10:46 pm (UTC)

Вот кстати насчёт более осмысленной конструкции типа bool `TryDequeue(out value);` я согласен, она может быть полезна. Хотя правильней было бы всё равно явно синхронизироваться через эвенты, ну да ладно, эта штука будет обычно работать и даже не очень неэффективно (пока перед тобой не встанет вопрос о том, на сколько, собственно, засыпать).

А вот как thread-safe queue.IsEmpty может быть полезно для чего бы то ни было, я представить не могу. Она сама её лочит один раз, потом ещё раз лочит когда ты пытаешься декьюйнуть и при этом может обломаться, то есть потратить множество процессорного времени впустую, вместо того, чтобы ты сделал этот один первый лок сам и достал значение, если оно есть, гарантированно. В чём смысл-то?

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting