小编Dar*_*der的帖子

如何使用HttpTaskAsyncHandler

public class FooHandler  : HttpTaskAsyncHandler
{
    public override async Task ProcessRequestAsync(HttpContext context)
    {
        return await new AdRequest().ProcessRequest();
        // getting error here. "Return type of async type is void"
    }
}

public class FooRequest
{

    public async Task<String> ProcessRequest()
    {
        //return await "foo"; obviously nothing to wait here
    }

}
Run Code Online (Sandbox Code Playgroud)

我想创建一个异步处理程序,只想返回一个字符串.我怎样才能使这个工作?是否有使用Async方法和任务的简明参考?

.net c# asynchronous httptaskasynchandler

5
推荐指数
1
解决办法
5685
查看次数

优化字符串操作

现在是 2019 年,我们有一个使用大型机作为数据存储和交易的银行项目。

我们正在使用 DTO(Commarea,纯 c# 类),它被转换为纯字符串(这是大型机的工作方式),然后发送到大型机。

在将类转换为字符串表示时,我们使用了几种字符串操作,例如子字符串、向左填充、向右填充、修剪等。

可以想象,这会导致多次字符串分配,从而导致垃圾收集。它通常在第 0 代,但仍然如此。

特别是像Decimalwhich is a Pack typein mainframe 这样适合 8 个字节的类型会创建多个字符串。

我尝试使用ReadonlySpan<char>例如子字符串。参见示例

不过,也有类似的操作PadRightPadLeft这是不缴费的,因为它是一个只读跨度。

更新: 澄清部分转换发生如下:

val.Trim().Substring(5).PadRight(10);
Run Code Online (Sandbox Code Playgroud)

我知道这会创建 3 个字符串。我知道字符串是不可变的。我的问题是关于使用ReadonlySpanor进行上述操作Memory

我不能只将 ReadonlySpan 用于子字符串,因为一旦我调用ToString方法,我就会失去好处。

我必须ToString一路打电话到最后。

是否有另一个结构支持子字符串后面的其他操作,我实际上可以将删除数据添加到内存中?

谢谢。

c# string

5
推荐指数
1
解决办法
233
查看次数

Flex字典排序

我在flex中有以下字典,id喜欢按值排序.找不到任何资源.

'1'=>2, '0' =>1, '3'=>4 ..
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?我如何按价值排序?

apache-flex sorting associative-array

4
推荐指数
1
解决办法
6878
查看次数

c#泛型方法

我有一个从msmq队列接收消息的方法.

我在msmq中有6个不同的队列,id就像一个接收消息的通用方法.这是工作,但我需要为每个队列编写6个方法.我想让它更通用.

public List<QueMessage> getMessagesFromObj1Queue()
{
    List<QueMessage> messageList = new List<QueMessage>();

    QueObj1 que = new QueObj1();

    while (que.ReceiveAll().Count > 0)
    {
        varmessage = que.Receive(new TimeSpan(0, 1, 0));
        messageList.Add(message);
    }

    return messageList;
}
Run Code Online (Sandbox Code Playgroud)

我有5个不同的对象,它只扩展了一个抽象类.下面的工作.

public List<QueMessage> getMessagesFromObj1Queue<T>(T que)
{
    List<QueMessage> messageList = new List<QueMessage>();

    while (que.ReceiveAll().Count > 0)
    {
        varmessage = que.Receive(new TimeSpan(0, 1, 0));
        messageList.Add(message);
    }

    return messageList;
}
Run Code Online (Sandbox Code Playgroud)

以上不起作用

怎么解决这个问题?

.net c# generics message-queue

4
推荐指数
1
解决办法
2762
查看次数

并行扩展

我有一个具有大量IO操作的应用程序,例如文件复制,压缩和移动文件系统周围的文件,复制到备份服务器.

我将此程序构建为单线程.它运行2分钟.

我使用Parallel扩展并使用Task构建了该程序的另一个版本,它几乎在2分钟内运行.

换句话说,由于IO很大,我没有看到使用Parallels带来的性能提升.

如果我将应用程序部署到刀片服务器,我会得到相同的结果吗?

刀片服务器是否比我的工作站更快/更多地处理IO?

将Parallels与IO绑定应用程序一起使用没有任何好处吗?

.net c# io parallel-processing parallel-extensions

4
推荐指数
1
解决办法
1864
查看次数

Lazy <T>和LazyInit <T>之间的区别

我在使用的课程中有以下几行.

 private static readonly LazyInit<TestClass> _instance = new LazyInit<TestClass>(() => new TestClass(), LazyInitMode.EnsureSingleExecution);
Run Code Online (Sandbox Code Playgroud)

有一天,我想要使.NET 4附带的所有新东西受益,安装它并彻底解决问题.

我的LazyInit不再工作了.所以我用Lazy <T>取代了每一次出现,但是呢 LazyInitMode.EnsureSingleExecution

我以为那会是LazyThreadSafetyMode.ExecutionAndPublication.

private static Lazy<LookupService> s_instance = new Lazy<LookupService>(() => new LookupService(), LazyThreadSafetyMode.ExecutionAndPublication);
Run Code Online (Sandbox Code Playgroud)

这两个declerations是否相等?

.net c# lazy-loading lazy-evaluation

4
推荐指数
1
解决办法
612
查看次数

(OAuthException - #2500)必须使用活动访问令牌来查询有关当前用户的信息

        string accessToken = GetAccessToken();
        string accessKey = accessToken.Split('=')[1];

        var client = new FacebookClient(accessKey);
        dynamic me = client.Get("me");
Run Code Online (Sandbox Code Playgroud)

这是获取访问令牌的方法,它确实返回一个有效的访问令牌

private static string GetAccessToken()
    {
        // Create a request using a URL that can receive a post. 
        WebRequest request = WebRequest.Create("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=201193246663533&client_secret=secretkeyhere");
        // Set the Method property of the request to POST.
        request.Method = "POST";
        // Create POST data and convert it to a byte array.
        string postData = "This is a test that posts this string to a Web server.";
        byte[] byteArray …
Run Code Online (Sandbox Code Playgroud)

c# facebook facebook-c#-sdk asp.net-mvc-3

4
推荐指数
1
解决办法
1万
查看次数

Web.API是独立的,没有UI

我想将WebApi用作数据访问的独立应用程序.

当我创建一个新的MVC 4项目时,它安装了一堆我对此目的不感兴趣的垃圾.

我应该删除视图,内容,脚本等.

或者你会为此目的推荐WCF吗?

另外,不同的浏览器返回不同的数据格式,例如Firefox返回XML,IE返回json.

我希望他们所有人都返回JSON.使用WCF如果配置了json,它们都返回返回JSON.如何强制webapi只返回所有浏览器的json?

有什么想法吗?

c# asp.net-mvc-4 asp.net-web-api

4
推荐指数
1
解决办法
1178
查看次数

比赛图

锦标赛是通过为无向完全图中的每条边指定方向而获得的有向图(有向图)。也就是说,它是一个有向图,其中每对顶点都由一条有向边连接。

数据结构是邻接矩阵。

什么是确定该图是否为锦标赛图的算法?

algorithm graph

3
推荐指数
1
解决办法
1612
查看次数

log4net配置问题

我有一个单独的Log4Net.config文件.我补充道

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)

到AssemblyInfo.cs

当我使用调试模式运行应用程序时,lognet正在记录.当我将应用程序发布到IIS时,lognet不会记录任何内容.

我还有以下内容:

BasicConfigurator.Configure(); // in a method
private static readonly ILog _logger = LogManager.GetLogger(typeof(_Default)); // for the instance
Run Code Online (Sandbox Code Playgroud)

这是什么原因?

.net c# configuration logging log4net

3
推荐指数
1
解决办法
2279
查看次数