如何生成唯一的文件名或路径?我正在寻找适用于Unix(类似)操作系统和Windows的解决方案.
我创建了一个QTcpServer端口1024.我想通过使用URL从websocket连接到它ws://localhost:1024,但它没有连接.我们不能将websockets连接到常规TCP服务器套接字吗?
我有这个方法:
public override void respond(params string[] resargs)
{
foreach (command cmd in pndgcmds)
{
cmd(this);
}
if (objs[resargs[0]].status)
objs[resargs[0]].request(resargs);
else
{
pndgcmds.Add(
(myclass master) =>
{
if (master.objs[resargs[0]].status != true) return;
master.objs[resargs[0]].request(resargs);
//code to remove the delegate
});
}
}
Run Code Online (Sandbox Code Playgroud)
检查对象是否能够响应,使其响应(如果有),否则将命令存储在字典中,以便在下次调用响应时检查并调用状态.
我有两个问题.
如何编写代码来删除委托?我不知道该怎么做.
如您所见,委托的许多内部工作依赖于方法参数.代表将如何表现?
提前致谢!
这个单例设计模式是否正确?我的意思是当它是静态的并且方法是同步的时,检查对象是否为空的需要是什么.
public class MySingleton {
int val = 10;
private static final MySingleton singleton = new MySingleton();
private MySingleton() { }
public static synchronized MySingleton getSingleton() {
return singleton;
}
}
Run Code Online (Sandbox Code Playgroud) 我有这个用于创建ZIP文件的代码:
void Compress(string contentDirectory, string zippedFileDirectory)
{
… // locate 7z.dll and invoke SevenZipExtractor.SetLibraryPath
SevenZipCompressor compressor = new SevenZipCompressor()
{
ArchiveFormat = OutArchiveFormat.Zip,
CompressionMode = CompressionMode.Create,
TempFolderPath = Path.GetTempPath()
};
string source = contentDirectory;
string output = zippedFileDirectory;
string zipFileName = "Diagnosis_Files.zip";
string t = Path.Combine(output, zipFileName);
compressor.CompressDirectory(source, t);
}
Run Code Online (Sandbox Code Playgroud)
在compressor.CompressDirectory完成创建ZIP文件之后,我想向用户显示ZIP文件,以便他们可以轻松地复制它或只看到它在哪个目录中创建.
我怎样才能做到这一点?
在我的Windows应用程序中,我想在Text单击某个按钮时从另一个线程更新标签的属性:
这是我的按钮单击事件处理程序的代码:
StatusLabel.Text = "Started";
Task.Factory
.StartNew(() =>
{
… // long-running code
StatusLabel.Text = "Done";
}, CancellationToken.None,
TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(tsk =>
{
MessageBox.Show("something broke");
var flattened = tsk.Exception.Flatten();
// note: Don't actually handle exceptions this way, m'kay?
flattened.Handle(ex => { MessageBox.Show("Error:" + ex.Message); return true; });
}, TaskContinuationOptions.OnlyOnFaulted);
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,执行上面的代码.我没有StatusLabel.Text = "Started";立刻看到.似乎它等待// long-running code然后它被执行.
我想要的是在单击按钮后立即在标签中看到"已启动",并且当长时间运行的任务完成时,我想在标签上看到"完成".
问题的标题说明了一切.在C#表达式中a ?? b,b始终是求值,还是仅在a求值时null?
我对此感到好奇,因为在评估右侧表达可能有副作用或评估可能计算成本高昂的情况下,这可能很重要.
我的数据库中有两个表。
Movies 桌子:
+----------------------------------------
| ID | title | timestamp |
+----------------------------------------
| 1 | The host | time |
| 2 | Fight Club | time |
| 4 | 21 | time |
----------------------------------------+
Run Code Online (Sandbox Code Playgroud)
Movie_Links 桌子:
+---------------------------------------+
| ID | link | movie_id |
+---------------------------------------+
| 1 | some link | 1 |
| 2 | some link | 1 |
| 3 | some link | 1 |
+---------------------------------------+
Run Code Online (Sandbox Code Playgroud)
目前我只从Movies表中选择行title,例如:
SELECT * FROM …Run Code Online (Sandbox Code Playgroud) 我试图声明一个值为字符串数组的字典.我怎样才能做到这一点?
我尝试了以下代码(不起作用):
Dictionary<string, string[]> NewDic = new Dictionary<string,string[]>
{
{"Key_0", {"Value_0.0", "Value_0.1"}},
{"Key_1", {"Value_1.0", "Value_1.1", "Value_1.2"}},
}
Run Code Online (Sandbox Code Playgroud) 我知道你需要调用.Close()一个SqlConnection对象,以便在完成后将基础SQL连接释放回池中; 但如果你不这样做,即使超出范围,.NET对象是否仍然留在内存中?我问,因为我正在处理一些遇到内存泄漏的代码,我注意到SqlConnection对象没有被关闭或处理(它们被创建,打开,然后只是被允许超出范围).
c# ×5
.net ×1
ado.net ×1
c++ ×1
delegates ×1
dictionary ×1
java ×1
jointable ×1
memory-leaks ×1
parameters ×1
qt ×1
qtcpserver ×1
singleton ×1
sql ×1
unix ×1
websocket ×1
windows ×1
winforms ×1