我有一个AngularJs应用程序.我将控制器用于某些子范围.在每个Controller中,我可以设置许多属于相应子范围的变量.当AngularJs实例化一个控制器时,有一个构造函数,我可以在其中为我的子范围变量设置一个默认值.
我有控制器"析构函数"吗?我怎么知道控制器什么时候关闭并且范围正在被清理(由$ destroy函数销毁)?
谢谢!
实现锁时,我曾经在我的类中创建一个私有对象:
如果我想确保它被锁定在创建我的类的线程中:
private object Locker = new object();
Run Code Online (Sandbox Code Playgroud)
如果我想确保它将被锁定我的应用程序中的所有线程:
private static object Locker = new object();
Run Code Online (Sandbox Code Playgroud)
但是这里: 为什么锁定对象必须是静态的?
在许多其他问题中,每个人都说对象必须是readonly.我没有找到原因 - 即使在MSDN或JavaDoc中也没有.
由于我经常使用这种结构,有人可以向我解释我为什么要使用它readonly?
谢谢!
我的Web服务每分钟写入数千个事务,我们将它们保存在高清上.
我正在测试保存这些文件的不同方法,我使用标准IO和MemoryMapped文件进行了一些测试.在我的结果中,使用MemoryMapped文件编写文件(20 k文本文件)比标准IO快4倍,我无法找到任何缺点.
由于我对这项技术没有那么多经验,你认为我可能会遇到使用它们的任何问题,或者你没有看到任何不利之处?
谢谢!
编辑1,这里的来源:
namespace FileWritingTests.Writers {
public class MappedFileWriter : ITestWriter {
public void Write(string content, string path,string id) {
Byte[] data = System.Text.Encoding.UTF8.GetBytes(content);
using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.None))
using (MemoryMappedFile memoryMapped = MemoryMappedFile.CreateFromFile(fileStream, id, data.Count(),
MemoryMappedFileAccess.ReadWrite, new MemoryMappedFileSecurity(), HandleInheritability.Inheritable, true)) {
var viewStream = memoryMapped.CreateViewStream();
viewStream.Write(data, 0, data.Length);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是测试人员:
public TimeSpan Run(int iterations, Writers.ITestWriter tester, String subfolder) {
Console.WriteLine(" -- Starting test {0} with {1} file writings",subfolder, …Run Code Online (Sandbox Code Playgroud) 我有一个启动服务器的类:
public class SocketServer
{
private static IXSocketServerContainer server = null;
public SocketServer()
{
server = XSockets.Plugin.Framework.Composable
.GetExport<IXSocketServerContainer>();
}
public bool StartServers()
{
try
{
server.StartServers();
return true;
} catch
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这个类有一个方法:
public void SendEventMessageToAllClients(string message)
{
XSockets.Core.XSocket.Helpers.XSocketHelper
.SendToAll<MyController>(new MyController(), message, "events");
}
Run Code Online (Sandbox Code Playgroud)
MyController我自己的控制器在哪里,它被实现,服务器可以找到它,这个方法工作.
现在我想用一种新方法扩展功能,允许我将事件发送到特定客户端:
public void SendEventMessageToClient(string clientId, string message)
{
XSockets.Core.XSocket.Helpers.XSocketHelper
.SendTo<MyController>(new MyController(),
p => p.ClientId == clientId, message, "events");
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法还是我做错了什么?
谢谢!