2013-11-23 2 views
0

Я использую библиотеку (в C# с моно 3.0), которая использует поток для сериализации данных, но синхронно. Я хотел бы построить асинхронную сетевую библиотеку, предоставив поток данных для сериализатора, а затем асинхронно посылая этот поток в сетевой поток.Неувязка асинхронных операций с потоками памяти

Вопрос в том, можно ли использовать синхронные методы в потоке памяти, так как не нужно задействовать операции ввода-вывода?

+0

из комментариев ниже, похоже, что это принесет много пользы, если вы измените свой вопрос и добавите образцы кода. в его нынешнем виде, вопрос - это простой вопрос «да/нет», на который я отвечаю «да». теперь вам нужно лучше объяснить фактические коды, выполняющие операции NetworkStream, MemoryStream, Synchronous и Asynchronous. вы можете даже нарисовать грубую диаграмму и вставить ее ссылку здесь. – inquisitive

ответ

0

Да, вполне нормально выполнять асинхронные вызовы в потоки памяти или, в общем, для операций с IO или CPU.

процитировать MSDN

... программа может вызвать метод, который перечисляет большой список, в то время как основная программа продолжает выполняться ...

просто убедитесь, что нет две нити начинают получать доступ к потоку памяти параллельно

+0

Спасибо за ваш ответ, но я спрашиваю, могу ли я заменить несколько вызовов ввода-вывода в NetworkStream на вызовы MemoryStream, а затем асинхронно вызывать NetworkStream, так что мне не нужно изменять базу кода, которая используя синхронные методы, но дайте ему MemoryStream вместо NetworkStream. – Sigh59

Смежные вопросы