Streamwriter缺少异步版本来写数字?

时间:2018-01-24 10:30:42

标签: c# stream async-await streamwriter

FileStream缓冲需要写入的字节。如果缓冲区已满,则将所有字节写入(刷新)到文件中。这个写过程可能需要一些时间。

由于添加到FileStream的每个字节都可能导致Flush,因此写入函数具有async version。可以在不等待写入完成的情况下写入流。

Class StreamWriter可以更轻松地将文字写入FileStream。将数据写入StreamWriter会导致数据写入基础流,从而可能导致Flush

这使得像StreamWriter.Write(int)这样的函数可能会变慢。但是,除了写字符或字符串之外,没有这些函数的异步版本。甚至有WriteLine的异步版本。

当我编写像整数和双精度这样的小对象时,不需要这些函数吗?

1 个答案:

答案 0 :(得分:0)

在我看来,它更多地取决于应用程序细节,(function () { 'use strict'; angular .module('blabla') .directive('showActiveTask', showActiveTask); showActiveTask.$inject = ['$uibModal']; function showActiveTask($uibModal) { return { //replace: true, restrict: 'E', scope: { taskData: '=' }, template: '<button type="submit"' + ' class="btn grey lighten-1 btn-raised white-text btn-sm"' + ' ng-click="open()">' + ' <span class="hidden-xs hidden-sm">View assigned tasks</span>' + '</button>', link: linkFunc }; function linkFunc(scope, element, attrs) { var vm = this; vm.showLabel = false; console.log(scope); scope.open = function () { vm.modalInstance = $uibModal.open({ templateUrl: 'blabla.html', size: 'lg', controller: scope.taskData, backdrop: true, resolve: { console.log('babla') } } }).result.then(function () { console.log("wanna switch"); }); console.log(scope) }; scope.clear = function () { console.log('close modal'); vm.modalInstance.close(); }; } } })(); 实例缓冲区大小,服务器硬件,服务器配置和预期的负载配置文件,而不是正在编写的小数据。您可以创建两个版本的应用程序(一个使用StreamWriter,另一个使用StreamWriter.Write(string)StreamWriter.WriteAsync(string)最终调用它们)并测试此实现细节如何影响吞吐量,内存使用等。

有关详情,请查看Stephen Toub撰写的http://brilliantbritz.com/2014/08/09/create-a-dynamic-modal-directive-in-minutes-using-angular-and-ui-bootstrap/文章和MSDN上TextWriter.Write(int)参数页面的Should I expose asynchronous wrappers for synchronous methods?构造函数。