小编Tom*_*Tom的帖子

字符串属性本身是线程安全的吗?

C#中的字符串是不可变的和线程安全的.但是当你有一个公共吸气剂属性时呢?像这样:

public String SampleProperty{
    get;
    private set;
}
Run Code Online (Sandbox Code Playgroud)

如果我们有两个线程,第一个是调用'get'而第二个是在"相同"时调用'set',会发生什么?

恕我直言,该集必须锁定为线程安全,如下所示:

private string sampleField;
private object threadSafer = new object();

public String SampleProperty{
    get{ return this.sampleField; }
    private set{
        lock(threadSafer){
            sampleField = value;
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

c# multithreading

30
推荐指数
2
解决办法
2万
查看次数

为什么许多软件项目今天都失败了?

只要有软件项目,世界就会想知道为什么他们经常失败.

我想知道是否有一个列表或类似的东西,显示今天有多少软件项目失败.如果在过去的20 - 30年间进行比较会很好.

您还可以添加软件项目失败的主要原因.我的是"要求很差甚至不存在." 其中还包括"无(真实)客户/用户参与".

编辑:几乎不可能清楚地定义术语"失败".假设失败意味着:该项目超出预算和时间的10%以上.在我看来,10%+/ - 是一个很好的报价/招标范围.

编辑:直到现在(2月11日)似乎大多数海报都认为项目失败基本上是项目管理的失败(无论失败意味着什么).但恕我直言,大多数开发人员对这种情况不满意.也许是因为当项目不成功时,经理不会受到惩罚,而是懒惰,无能的开发团队?

当我阅读帖子时,我也可以听到开发者方和管理方之间存在很大的"差距".期望(也许也是要求)似乎是如此不同,一个项目最终不能成功(随着时间/预算;用户不满意;并非所有第一prio功能都实现;太多错误,因为开发人员被迫在太短的时间内实施...)

我问自己:我们怎样才能改善它?或者我们是否有可能改进它?每个人似乎对现在的方式都不满意.我们能缩小这两个世界之间的差距吗?我们(开发商)是否应该继续罢工并争取"高质量的反应"和"基于现实/迭代的时间表"?

编辑: Ralph Westphal和Stefan Lieser创建了一个名为" Clean-Code-Developer "的新"社区" .该小组的目标是为软件工程带来更多的专业性.如果开发人员具有一定程度或数年的经验,您可以独立参与此运动.

清洁代码开发人员每天都像SOLID一样遵循原则.专业开发人员是他自己工作的最大评论者.他有一个内部价值体系,可以帮助他改善并变得更好.

请查看: 清洁代码开发人员

编辑:我们公司目前正在做一个名为"应用程序开发和维护基准测试"的事情.这是IBM提供的一项服务,用于获取外部人员对您的软件工程过程质量等的反馈.当我们得到结果时,我会告诉您更多相关信息.

project-management projects

22
推荐指数
8
解决办法
2万
查看次数

具有四个以上参数的操作委托(方法参数)

我编写了一个帮助器类,它使用Action - delegate作为方法参数.
像这样:
public void SomeMethod(Action<T> methodToExecute, T argument);

根据MSDN,您可以声明最大值.关于行动代表的4个论点:Action<T1,T2,T3,T4>.

现在我想调用一个需要5的方法!参数.我怎么能这样做?
最好的解决方案是我可以使用动态数量的方法参数.

谢谢

c# delegates

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

C#XML注释:XML注释中有多少<see ... />引用有用?

在我们公司,我们写了过多的Xml评论.一个典型的方法必须记录如下:

/// <summary>
/// Determines whether this <see cref="IScheduler"/> contains a specific <see cref="ISchedule"/>.
/// </summary>
/// <param name="schedule">The <see cref="ISchedule"/> to locate in this <see cref="IScheduler"/>.</param>
/// <returns>
/// Returns <see langword="true"/> if <paramref name="schedule"/> is found in this <see cref="IScheduler"/>; otherwise, <see langword="false"/>.
/// </returns>
bool Contains(ISchedule schedule);

/// <summary>
/// Removes and <see cref="IDisposable.Dispose"/>s the first occurrence of a specific <see cref="ISchedule"/>
/// from this <see cref="IScheduler"/>.
/// </summary>
/// <param name="schedule">The <see cref="ISchedule"/> to remove from …
Run Code Online (Sandbox Code Playgroud)

c# xml comments

11
推荐指数
2
解决办法
4618
查看次数

量角器:自动化E2E测试 - 选择证书

我正在为我们的业务应用程序编写E2E - Test.因为它是一个企业环境,我必须选择客户端证书来访问不同的Webapps(我为不同的测试用户安装了不同的证书).

只要我手动启动测试,首先选择适当的证书就没问题.但是,何时在自动构建中触发它们,这是行不通的.我无法使用Protractor本身选择证书.

目前,我有一个首先删除所有证书的脚本,然后安装一个特定的证书并使用IE开始测试.使用Chrome时,仍然会有一个用于选择证书的弹出窗口.所以我现在只能在IE中自动运行测试.

有人提出建议,如何改进?我尝试过很多东西,正如谷歌,Stackoverflow等所建议的那样,但没有真正奏效.或者有任何人使用不同证书自动化量角器测试的经验吗?

谢谢您的帮助.

ssl selenium-webdriver protractor

8
推荐指数
0
解决办法
848
查看次数

如何正确处理等待句柄

我正在做一些多线程并使用AutoResetEvents和ManualResetEvents来控制我的主循环.当"destryoing"线程时,我也必须处理这些信号,这很清楚.

但是我看到了如何处理Waithandles的不同方法,我不确定哪一个是正确的:

版本1

if (disposing)
{
 this.threadExitEvent.SafeWaitHandle.Dispose();
 this.threadExitEvent.Close();
 this.threadExitEvent = null;
 ....
}
Run Code Online (Sandbox Code Playgroud)

版本2

if (disposing)
{
 this.threadExitEvent.Close();
 this.threadExitEvent = null;
 ....
}
Run Code Online (Sandbox Code Playgroud)

版本3

if (disposing)
{
 this.threadExitEvent.Close();
 ....
}
Run Code Online (Sandbox Code Playgroud)

c# waithandle

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