小编Nie*_*est的帖子

包含线程的类的IDisposable实现

早上好!我们假设我们有以下类:

class MultithreadOperation : IDisposable
{
    private IList<Thread> operationThreads;

    public void StartOperation()
    {
          // Initialize and start threads and put them to operationThreads
    }

    public void StopOperation()
    {
          // Aborts each thread.
    }

    public void Dispose()
    {
          Dispose(true);
          GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
         if (!disposed)
         {
              disposed = true;
              if (disposing)
              {
                    // Release managed resources.
                    #1:
                    StopOperation();
              }
              // Release unmanaged resources.
              #2:
              StopOperation();
         }
    }

    ~MultithreadOperation()
    {
         Dispose(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,如果实例被丢弃,我需要停止所有线程.此外,如果实例被垃圾收集,我需要停止所有线程(否则,线程将仍然存活,这对我不利).当然,在#1中调用StopOperation()方法是完全合法的.

我想知道如果我们调用StopOperation()到位#2,是否有任何陷阱?据我所知,当~MultithreadOperation()执行时,线程列表可能已被垃圾收集.此外,我已经看到很多建议,以避免任何代码引用Finalize实现中的托管资源,尤其是实例字段.

此外,听到有关此问题的不同方法会很有趣.谢谢!

.net c# multithreading

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

将Mongo Embeded文档移动到自己的集合中

有人能指出我正确的方向,我有一个Collection(Forms)每个Form都有一个嵌入式文档数组(Responses).每个表单的响应都变得很大,事后看来嵌入它们是一个坏主意(包括嵌入式的mongo文档具有最大大小限制).

有没有办法可以快速轻松地将所有这些嵌入式响应移动到自己的集合中?是否有像旧的SQL选择这样的东西?我已经在rails控制台中浏览了一下,但是有很多嵌入式文档无法访问它,所以我想它在mongo控制台中必须是一个复杂的查找和插入查询?(只是在那里猜测)

我的模型是固定的,但是这个迁移(以及mongo文档)让我很难过.

TIA Dougle

ruby migration ruby-on-rails migrate mongodb

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

为什么我不能在MonoTouch上使用一个加密器加密多个字符串?

我正在使用以下(修剪)类来加密某些数据,然后再将其从iPad应用程序发送到WCF Web服务.

public class FlawedAlgorithm
{
    protected static byte[] key = { 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 };
    protected static byte[] vector = { 13, 37, 13, 37, 13, 37, 13, 37, 13, 37, 13, 37, 13, 37, 13, 37 };
    protected ICryptoTransform encryptor, decryptor;
    protected UTF8Encoding encoder;

    public FlawedAlgorithm()
    {
        using (var rijndael = new RijndaelManaged())
        {
            this.encryptor = rijndael.CreateEncryptor(key, vector);
            this.decryptor = rijndael.CreateDecryptor(key, vector);
        }

        this.encoder = …
Run Code Online (Sandbox Code Playgroud)

.net c# encryption rijndaelmanaged xamarin.ios

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

我该如何创建后台线程?

由以下创建的线程是前台线程

  Thread workingThread = new Thread(new ParameterizedThreadStart(DoJob));
Run Code Online (Sandbox Code Playgroud)

我可以创建线程创建背景吗?

.net c#

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

base64 to guid to base64

我目前正在研究MongoDb作为一​​个可能的数据库选项,我在处理Guid序列化时遇到了麻烦.我一开始认为这可能是C#驱动程序序列化中的一个错误,但现在我认为这更像是一个天真的假设.

为了帮助我将Bson base64表示来回转换为Guids,我写了几个小的powershell函数来帮助:

function base64toguid  
{  
    param($str);  
    $b = [System.Convert]::FromBase64String($str);
    $hex = "";
    foreach ($x in $b) {
        $hex += $x.ToString("x2");
    }
    $g = new-object -TypeName System.Guid -ArgumentList $hex;
    return $g;
}


function guidtobase64
{
    param($str);
    $g = new-object -TypeName System.Guid -ArgumentList $str;
    $b64 = [System.Convert]::ToBase64String($g.ToByteArray());
    return $b64;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题的一个例子:

:) guidtobase64("53E32701-9863-DE11-BD66-0015178A5E3C");
ASfjU2OYEd69ZgAVF4pePA==
:) base64toguid("ASfjU2OYEd69ZgAVF4pePA==");

Guid
----
0127e353-6398-11de-bd66-0015178a5e3c
Run Code Online (Sandbox Code Playgroud)

从mongo shell:

:) mongo
MongoDB shell version: 1.6.5
connecting to: test
> b = new BinData(3, "ASfjU2OYEd69ZgAVF4pePA==");
BinData(3,"ASfjU2OYEd69ZgAVF4pePA==")
> b.hex();
127e353639811debd66015178a5e3c
> …
Run Code Online (Sandbox Code Playgroud)

powershell guid mongodb

4
推荐指数
1
解决办法
1万
查看次数

mongo bson objectid

好奇BSON::ObjectId.id.data数组代表什么?

例如 [77, 145, 20, 13, 225, 96, 124, 5, 31, 0, 0, 1]

mongodb bson

2
推荐指数
1
解决办法
1388
查看次数

单行换行的HTML代码

我想在我的HTML代码中显示此文本:

<html>
Name 1 
Name 2
Managers
</html>
Run Code Online (Sandbox Code Playgroud)

我试图这样做,但然后在网站上显示如下:

姓名1姓名2经理.

如果我戴上<p>它,它会显示如下:

<html>
<p>Name 1 </p>
<p> Name 2 </p>
<p> Managers </p>
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

名称1

名称2

经理

是否有任何代码如何保持这个单身?

谢谢

html

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

塔架开发资源

塔架开发有什么好的资源吗?

我想构建一个pylons应用程序并在nginx上运行它(为了速度)

我希望使用mongo作为数据库.

鉴于这个堆栈是否有任何资源可以指向我正确的方向?任何提示/建议欢迎.

python pylons nginx mongodb

0
推荐指数
1
解决办法
148
查看次数