我知道如果我从不同的线程修改控件,我应该小心,因为WinForms和WPF不允许从其他线程修改控件的状态.
为什么会有这种限制?
如果我可以编写线程安全的代码,我应该能够安全地修改控制状态.那为什么会出现这种限制?
我知道IDisposable
Interface和它在.net中的使用但是我脑子里有一个问题,如果我正在编写所有托管代码,那么实现IDisposable
接口是否有意义?
我知道何时以及如何使用Idisposible但我的问题是,如果我正在编写所有托管代码说一个简单的类没有什么昂贵的,所以如果我IDisposable
在这个类中实现并做一些清理,如释放一些全局值,它是否有意义?
如问题所示,
由于我们使用像IsNullOrEmpty或IsNullOrWhiteSpace这样的字符串函数作为函数显示的名称,这些函数执行多个作业,是不是违反了SRP?
相反,它不应该是string.isValid(Enum typeofValidation)而不是使用策略模式来选择正确的策略进行验证.
或者在实用程序类或静态类中违反SRP是完全可以的.
有没有办法在多计算机场景中使用任务并行库?
我的意思是,如果我有大量的任务,我可以通过局域网在多个服务器上安排它吗?
我有点困惑,可能这个问题很傻.
为非托管组件分配的内存在哪里?
在我的.net代码中,如果我启动了一个非托管组件,这个组件将被加载并分配内存?
CLR如何在托管堆和非托管堆之间进行调用?
编辑
感谢您的回复,但我要问的是假设我做了一个User32.Dll的DLLIMPORT,这显然是一个非托管的DLL,我现在调用User32.DLL中的一些函数我的问题,CLR如何编组我对这个无人dll的调用?
最近在MS采访中提出了一个基本问题
class A {
public virtual void Method1(){}
public void Method2() {
Method1();
}
}
class B:A {
public override void Method1() { }
}
class main {
A obk = new B();
obk.Method2();
}
Run Code Online (Sandbox Code Playgroud)
那么调用哪个函数?抱歉打字错误.
这个问题可能是主观的,但我只想知道何时使用TPL以及何时使用基于本机线程的同步(evnts,等待句柄).
本机线程同步技术将在未来过时吗?
谢谢
我们知道字符串是引用类型,所以我们有
string s="God is great!";
Run Code Online (Sandbox Code Playgroud)
但是在同一个音符上,如果我声明类说Employee是一个引用类型,为什么下面的代码不起作用呢?
Employee e = "Saurabh";
Run Code Online (Sandbox Code Playgroud)
2-我们如何确定类型是引用类型还是值类型?
c# ×9
abstraction ×1
ado.net ×1
c#-4.0 ×1
datatable ×1
polymorphism ×1
single-responsibility-principle ×1
string ×1