小编Dan*_*nds的帖子

如何使用NSDateFormatter和可选的毫秒部分解析ISO 8601

我正在尝试使用NSDateFormatter来解析这些格式中的任何一种格式的日期

@"2013-02-01T14:21:00"
Run Code Online (Sandbox Code Playgroud)

要么

@"2013-02-01T14:21:56.345"
Run Code Online (Sandbox Code Playgroud)

目前我使用下面的方法来解析字符串并返回一个日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];

[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *date = [dateFormatter dateFromString:dateToFormat];
Run Code Online (Sandbox Code Playgroud)

这适用于第一种日期样式,但对于包含毫秒部分的字符串返回nil.

我想我可以测试毫秒的存在并剥离它们,但我想知道我是否可以更改日期格式以将.SSS视为可选项?

谢谢你的帮助

objective-c ios

17
推荐指数
1
解决办法
5401
查看次数

Azure ServiceBus QueueClient.OnMessage是否在其他线程上执行

QueueClient.OnMessage方法是否总是在不同的线程上执行回调参数?

我假设如果MaxConcurrentCalls设置为10,那么queueClient将最多启动10个线程来并行处理消息.如果传入MaxConcurrentConnection值为1或者它是否在当前线程上执行,是否会创建新线程?

我的实际问题:
在一个Worker角色中我想处理多个队列,但是它们都会同时处理.例如

        _queueClient1.OnMessage(x =>
            {
                // Do something
            }, new OnMessageOptions { MaxConcurrentCalls = 1});

        _queueClient2.OnMessage(x =>
        {
            // Do something
        }, new OnMessageOptions { MaxConcurrentCalls = 1 });

        _queueClient3.OnMessage(x =>
        {
            // Do something
        }, new OnMessageOptions { MaxConcurrentCalls = 1 });

        _queueClient4.OnMessage(x =>
        {
            // Do something
        }, new OnMessageOptions { MaxConcurrentCalls = 1 });
Run Code Online (Sandbox Code Playgroud)

这是否会导致每个回调并行执行,以便_queueClient4回调不等待_queueClient2完成才能执行?

azure azureservicebus

10
推荐指数
1
解决办法
6451
查看次数

如何使用REST仅返回集合中已更改的资源

假设我正在设计一个REST API,它应该返回经过身份验证的用户的联系人列表

e.g. /users/me/contacts
Run Code Online (Sandbox Code Playgroud)

为了提高性能,我将返回一个ETag,并在If-None-Match标头中的未来GET请求中提供.假设没有任何改变,那么API将返回Not-Modified响应.

但是,当联系人列表发生变化时会发生什么?我不想再次返回整个集合,只是新的和修改过的项目.

我可以发送HEAD请求,比较ETag,然后发送新项目的后续GET请求,但这似乎有点浪费.

我刚刚遇到了If-Range标题,看起来它可能解决了这个问题,但它似乎还要求Range标头以字节为单位指定.

你认为If-Range标题是要走的路还是我错过了一些明显的东西?

rest api-design

6
推荐指数
1
解决办法
983
查看次数

如何在TeamCity中查看.NET跟踪日志?

我有几个C#集成测试,每晚由Team City和NUnit测试运行器运行.如果测试失败,可以在Team City构建日志中显示Trace日志,这将非常有用.

这可能吗?

.net teamcity nunit

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

等待Service Bus OnMessage处理的消息完成

我正在使用Azure Service Bus SubscriptionClient.OnMessage方法; 配置为同时处理多达5个消息.

在代码中,我需要等待所有消息完成处理才能继续(正确关闭Azure Worker角色).我该怎么做呢?

SubscriptionClient.Close()会阻塞,直到所有消息都完成处理?

azure azureservicebus

2
推荐指数
1
解决办法
2590
查看次数

当静态变量在方法中枚举时设置为null时会发生什么

给定以下类并假设打印列表需要很长时间才能运行,如果线程1调用PrintList()然后在它运行时会发生什么,线程2会调用ClearList?

我们不是修改集合只是将引用更改为指向堆中不同位置的点.那么枚举继续有效吗?如果是这样,因为_someList引用的副本放在方法的堆栈帧上?

public class foo()
{

    private static List<string> _someList;

    public void ClearList()
    {
        _someList = null;
    }

    public void PrintList()
    {
        foreach(var item in _someList)
        {
            Console.Print(item);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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