小编Mat*_*nde的帖子

背景线程是个坏主意吗?为什么?

所以我被告知我在这里做的事情是错的,但我不确定为什么.

我有一个网页导入带有文档编号的CSV文件,以执行昂贵的操作.我把昂贵的操作放到后台线程中,以防止它阻塞应用程序.这就是我的简要说明.

protected void ButtonUpload_Click(object sender, EventArgs e)
{
    if (FileUploadCSV.HasFile)
    {
        string fileText;
        using (var sr = new StreamReader(FileUploadCSV.FileContent))
        {
            fileText = sr.ReadToEnd();
        }

        var documentNumbers = fileText.Split(new[] {',', '\n', '\r'}, StringSplitOptions.RemoveEmptyEntries);

        ThreadStart threadStart = () => AnotherClass.ExpensiveOperation(documentNumbers);
        var thread = new Thread(threadStart) {IsBackground = true};
        thread.Start();
    }
}
Run Code Online (Sandbox Code Playgroud)

(显然有一些错误检查和用户投掷的消息)

所以我的三个问题是:

  • a)这是个坏主意吗?
  • b)为什么这是一个坏主意?
  • c)你会做什么?

c# multithreading background

7
推荐指数
2
解决办法
660
查看次数

死锁 - 这真的有用吗?

所以我有一个问题让我陷入困境.熟悉系统的人无法弄清楚为什么sproc会死锁,但是他们告诉我我应该把它添加到它:

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Run Code Online (Sandbox Code Playgroud)

这真的是一个有效的解决方案?那是做什么的?

sql sql-server deadlock

7
推荐指数
2
解决办法
5276
查看次数

运行Heckle时出错?`current_code':Ruby2Ruby的未定义方法`translate'

我正在尝试运行Heckle,并且我一直收到错误:

> spec spec/controllers/my_controller_spec.rb --heckle MyController

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! exception= has a thick skin. There's nothing to heckle.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

(Runs through several mutations...)

/home/developer/.gem/ruby/1.8/gems/heckle-1.4.3/lib/heckle.rb:603:in `current_code': undefined method `translate' for Ruby2Ruby:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

编辑:我忘记了宝石版本:

heckle (1.4.3)
ruby2ruby (1.2.3)
rails (2.3.2, 2.2.2)
rspec (1.2.6)
rspec-rails(1.2.6, 1.1.12)
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails heckle

6
推荐指数
1
解决办法
850
查看次数

指定的成员资格提供程序名称无效.参数名称:providerName

  • .Net4.0
  • MVC 2
  • NHibernate的
  • NUnit的

我正在尝试测试用户创建.根据我的测试,我打电话给以下人员:

MembershipCreateStatus status;
// _session is my current NHibernate session.
var mmp = new MyMembershipProvider(_session);
mmp.CreateUser(username, password, "something@example.com", "", "", true, Guid.NewGuid(), out status);
Run Code Online (Sandbox Code Playgroud)

在这个CreateUser方法中,它得到了这么远:

var user = new MembershipUser(Name, username, providerUserKey, email, passwordQuestion, passwordAnswer, isApproved, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

...在抛出此异常之前:

The membership provider name specified is invalid.
Parameter name: providerName
Run Code Online (Sandbox Code Playgroud)

我将我的名称设置为MyMembershipProvider,并在Web.config中我有这个:

<add name="OnyxMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
  enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
  maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
  applicationName="/" />
Run Code Online (Sandbox Code Playgroud)

还有,我的连接字符串:

<add name="ApplicationServices" …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate nunit asp.net-membership .net-4.0

6
推荐指数
1
解决办法
6779
查看次数

使用ASP.NET MVC在Internet Explorer中"无法下载文件"

所以我FileContentResult从这样的动作返回一个:

return File(pck.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "MyExcelFile.xlsx");
Run Code Online (Sandbox Code Playgroud)

在IE中单击"打开"(我使用的是IE9,版本9.0.8112.16421)时,会显示"无法下载文件",并向用户显示"重试"按钮.如果他们单击"重试",则可以正常工作.如果他们单击"保存",则工作正常.在Firefox中,它工作正常.

如何在第一次单击"打开"时允许用户打开文件?

asp.net-mvc internet-explorer filecontentresult

6
推荐指数
1
解决办法
8597
查看次数

从Rails迁移中获取SQL

有没有人知道一种方法来查看由迁移生成的SQL(最好不实际运行迁移)?

谢谢!

sql sql-server activerecord ruby-on-rails

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

黄瓜和/或Webrat讨厌&nbsp;?

我有一个黄瓜步骤,最近&nbsp;在添加到我的布局时失败了.如果我拿出&nbsp;来,我的测试全部通过.当我把它重新放入时,每个使用WebRat提供的click_link方法的测试都会失败,并显示以下消息:

And he follows 'Unsubscribe'
  incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)
  (eval):3:in `click_link`
  (eval):2:in `click_link`
  /path_to_project/webrat_steps.rb:19:in `/^(I|he|she) follows? '([^\"]*)'$/'
  features/manage_subscriptions.feature:59:in `And he follows 'Unsubscribe''
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?

ruby-on-rails webrat cucumber

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

将索引添加到gerrund表

所以,我有一个订阅表:

id - int(11) (With Primary Key)
user_id - int(11)
group_id - int(11)
role - int(11)
pending - tinyint(1)
created_at - datetime
updated_at - datetime
Run Code Online (Sandbox Code Playgroud)

我经常查询用户是否具有与此类似的访问权限:

SELECT * FROM `subscriptions` WHERE (group_id = 1 AND user_id = 2 AND pending = 0) LIMIT 1
Run Code Online (Sandbox Code Playgroud)

我想知道subscriptions(group_id, user_id, pending)在这种情况下添加一个独特的索引是否有帮助或阻碍?索引几乎整个表的最佳实践是什么?

mysql sql indexing

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

覆盖页面/ StreamReader大小限制的渲染?

所以,我正在努力将HTML从标准的ASP.Net页面中删除.我已经重写了Render方法,如下所示:

protected override void Render(HtmlTextWriter writer)
{
    MemoryStream memoryStream = new MemoryStream();

    try
    {
        using (StreamWriter streamWriter = new StreamWriter(memoryStream))
        {
            var textWriter = new HtmlTextWriter(streamWriter);
            base.Render(textWriter);
            memoryStream.Position = 0;
            using (StreamReader reader = new StreamReader(memoryStream))
            {
                var text = reader.ReadToEnd();
                Response.Write(text);
                reader.Close();
            }
        }
    }
    catch(ObjectDisposedException)
    {
        // The stream writer is already disposed?
    }
    finally
    {
        memoryStream.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于小于8.00 KB(8,200字节)的文件.如果文件大于该文件,则末尾的任何文本都将被截断.

有没有人有建议?

c# asp.net streamreader

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

骨干"记住"属性中的值

我有一个基本的模型:

myTestModel = Backbone.Model.extend({
    defaults: {
        title: 'My Title',
        config: {},
        active: 1,
    }
})
Run Code Online (Sandbox Code Playgroud)

没有什么特别之处,但是我注意到config选项中的值会在实例之间被记住.例如:

var test1 = new myTestModel();
test1.set('title', 'A New Title');
test1.get('config').screen_name = 'Joe';
alert( test1.get('title') );               // 'A New Title', expected.
alert( test1.get('config').screen_name );  // 'Joe', expected.

var test2 = new myTestModel();
alert( test2.get('title') );               // 'My Title', expected.
alert( test2.get('config').screen_name );  // 'Joe', NOT expected.
Run Code Online (Sandbox Code Playgroud)

那么,为什么在test2,是screen_name正在从保存test1?我怎样才能防止这种情况发生?

javascript backbone.js

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