Assembly.GetManifestResourceStream (name) возвращает новый поток при каждом вызове? - PullRequest
1 голос
/ 11 октября 2011

В документации GetManifestResourceStream не ясно о нескольких вызовах для одного и того же ресурса. Гарантирует ли каждый вызов независимый экземпляр потока?

Причина: знать, стоит ли беспокоиться о одновременном использовании.

Ответы [ 2 ]

3 голосов
/ 11 октября 2011
internal unsafe Stream GetManifestResourceStream(string name, ref StackCrawlMark stackMark, bool skipSecurityCheck)
{
    // blahblah
    //...
    return new UnmanagedMemoryStream(pointer, (long) length, (long) length, FileAccess.Read, true);
}

Итак, да. Было бы довольно сложно использовать, если бы этого не произошло.

3 голосов
/ 11 октября 2011

Учитывая, что потоки находятся в состоянии, я был бы очень удивлен, если два вызова получили одну и ту же ссылку Stream.Я был бы гораздо менее удивлен, когда узнал, что два потока могут быть оба просмотра одного и того же бита памяти, но это должно быть скрыто от вызывающего.1006 *

...