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) 只要有软件项目,世界就会想知道为什么他们经常失败.
我想知道是否有一个列表或类似的东西,显示今天有多少软件项目失败.如果在过去的20 - 30年间进行比较会很好.
您还可以添加软件项目失败的主要原因.我的是"要求很差甚至不存在." 其中还包括"无(真实)客户/用户参与".
编辑:几乎不可能清楚地定义术语"失败".假设失败意味着:该项目超出预算和时间的10%以上.在我看来,10%+/ - 是一个很好的报价/招标范围.
编辑:直到现在(2月11日)似乎大多数海报都认为项目失败基本上是项目管理的失败(无论失败意味着什么).但恕我直言,大多数开发人员对这种情况不满意.也许是因为当项目不成功时,经理不会受到惩罚,而是懒惰,无能的开发团队?
当我阅读帖子时,我也可以听到开发者方和管理方之间存在很大的"差距".期望(也许也是要求)似乎是如此不同,一个项目最终不能成功(随着时间/预算;用户不满意;并非所有第一prio功能都实现;太多错误,因为开发人员被迫在太短的时间内实施...)
我问自己:我们怎样才能改善它?或者我们是否有可能改进它?每个人似乎对现在的方式都不满意.我们能缩小这两个世界之间的差距吗?我们(开发商)是否应该继续罢工并争取"高质量的反应"和"基于现实/迭代的时间表"?
编辑: Ralph Westphal和Stefan Lieser创建了一个名为" Clean-Code-Developer "的新"社区" .该小组的目标是为软件工程带来更多的专业性.如果开发人员具有一定程度或数年的经验,您可以独立参与此运动.
清洁代码开发人员每天都像SOLID一样遵循原则.专业开发人员是他自己工作的最大评论者.他有一个内部价值体系,可以帮助他改善并变得更好.
请查看: 清洁代码开发人员
编辑:我们公司目前正在做一个名为"应用程序开发和维护基准测试"的事情.这是IBM提供的一项服务,用于获取外部人员对您的软件工程过程质量等的反馈.当我们得到结果时,我会告诉您更多相关信息.
我编写了一个帮助器类,它使用Action - delegate作为方法参数.
像这样:
public void SomeMethod(Action<T> methodToExecute, T argument);
根据MSDN,您可以声明最大值.关于行动代表的4个论点:Action<T1,T2,T3,T4>.
现在我想调用一个需要5的方法!参数.我怎么能这样做?
最好的解决方案是我可以使用动态数量的方法参数.
谢谢
在我们公司,我们写了过多的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) 我正在为我们的业务应用程序编写E2E - Test.因为它是一个企业环境,我必须选择客户端证书来访问不同的Webapps(我为不同的测试用户安装了不同的证书).
只要我手动启动测试,首先选择适当的证书就没问题.但是,何时在自动构建中触发它们,这是行不通的.我无法使用Protractor本身选择证书.
目前,我有一个首先删除所有证书的脚本,然后安装一个特定的证书并使用IE开始测试.使用Chrome时,仍然会有一个用于选择证书的弹出窗口.所以我现在只能在IE中自动运行测试.
有人提出建议,如何改进?我尝试过很多东西,正如谷歌,Stackoverflow等所建议的那样,但没有真正奏效.或者有任何人使用不同证书自动化量角器测试的经验吗?
谢谢您的帮助.
我正在做一些多线程并使用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)