首页 > 解决方案 > 等待任务忽略超时

问题描述

我有一个问题,结果忽略了 5000 毫秒的等待超时并在 .Result 完成时返回它......这导致我的 IIS 崩溃,因为对 IIS 发出的请求都没有超时并创建一个很长的队列和执行时间。

编辑:澄清:如果等待超过 5000 毫秒,它应该返回“123;NK”。

public class Client : IMotorClient
    {
        private IMotorProxy Link { get; set; }

        //private IOfficeGenerator OfficeGenerator { get; set; }

        private IOfficeRegistryLegacy OfficeRegistry { get; set; }

        public WebInternalGatewayClient(IMotorProxy proxy, IOfficeRegistryLegacy officeRegistry)
        {
            OfficeRegistry = officeRegistry;
            Link = proxy;
        }

        public string Execute(string host, int port, string command)
        {
            var officeGuid = OfficeRegistry.GetOfficeGuid(host, port);

            var result = "";
            var task = Task.Run(() => result = Link.Submit(officeGuid, command).Result);
            var value = task.Wait(TimeSpan.FromMilliseconds(5000));

            if (!value)
            {
                result = "123;NK;";
            }

            return result;
        }
    }

标签: c#async-awaittasktask-parallel-library

解决方案


推荐阅读