问题列表 - 第21203页

C#SharpPcap跨线程操作无效

嗨,我正在尝试将SharpPcap新版本SharpPcap-2.2.0rc1.src中的示例3中的数据包捕获从控制台应用程序转换为Windows窗体应用程序.

我遇到一个问题,当我尝试添加数据包已被捕获到ListView控件我将得到一个错误,这是:

(跨线程操作无效:控制'listViewPackets'从其创建的线程以外的线程访问.)

在这一行:
listViewPackets.Items.Add(e.Packet.ToString());

任何解决这个问题的建议???

这是我的代码:

using SharpPcap;

namespace Packets
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }



            // Retrieve the device list

        private void btnLiDevicest_Click(object sender, EventArgs e)
        {
            var devices = LivePcapDeviceList.Instance;
            // If no devices were found print an error
            if (devices.Count < 1)
            {
                MessageBox.Show("No devices were found on this machine");
                return;
            }


            int i = 0;

            // Print out the devices
            foreach (LivePcapDevice dev in devices)
            {

                ///* Description …
Run Code Online (Sandbox Code Playgroud)

c# sharppcap

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

Zend_Db_Table UTF-8字符

我的数据库中的表是使用正确的UTF-8字符集创建的,如下所示:

CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
...
...
...
...
...
PRIMARY KEY (id)
) ENGINE = INNODB  CHARACTER SET utf8 COLLATE utf8_slovak_ci;
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Zend_Db_Table使用此方法从表中获取数据时:

public function getSingle($id)
{
    $select = $this->select();
    $where = $this->getAdapter()->quoteInto('id = ?', $id, 'INTEGER');
    $select->where($where);
    return $this->fetchRow($select);
}
Run Code Online (Sandbox Code Playgroud)

它返回一个带有乱糟糟的UTF-8字符的对象(我猜是转换为iso-8859-1).

当我通过phpmyadmin查看数据库时,它会正确显示所有字符,并且还显示正确的编码(UTF-8),因此我不知道问题出在哪里.

我怎么解决这个问题?

更新:

所以我做了这个,它的工作原理:

protected function _initDb()
{
    $this->configuration = new Zend_Config_Ini(APPLICATION_PATH
                                               . '/configs/application.ini',
                                               APPLICATION_ENVIRONMENT);
    $this->dbAdapter = Zend_Db::factory($this->configuration->database);
    Zend_Db_Table_Abstract::setDefaultAdapter($this->dbAdapter);
    $stmt = new Zend_Db_Statement_Pdo($this->dbAdapter,
                                      "SET NAMES 'utf8'");
    $stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

UPDATE2:

我试过这个:

protected function …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-db-table zend-db

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

信号NaN的有用性?

我最近读了很多关于IEEE 754和x87架构的内容.我正在考虑在我正在研究的一些数值计算代码中使用NaN作为"缺失值",我希望使用信令 NaN将允许我在我不想要的情况下捕获浮点异常继续"缺失值".相反,我会使用安静的 NaN来允许"缺失值"通过计算传播.但是,信号NaN不起作用,因为我认为它们将基于它们上存在的(非常有限的)文档.

以下是我所知道的摘要(所有这些都使用x87和VC++):

  • _EM_INVALID(IEEE"无效"异常)在遇到NaN时控制x87的行为
  • 如果屏蔽了_EM_INVALID(禁用了异常),则不会生成异常,操作可以返回安静的NaN.涉及信令NaN的操作不会引发异常,但会转换为安静的NaN.
  • 如果_EM_INVALID未被屏蔽(启用了异常),则无效操作(例如,sqrt(-1))会导致抛出无效异常.
  • x87 从不生成信令NaN.
  • 如果_EM_INVALID是未屏蔽的,任何使用的信令的NaN(即使初始化与它的变量)的导致一个无效引发异常.

标准库提供了一种访问NaN值的方法:

std::numeric_limits<double>::signaling_NaN();
Run Code Online (Sandbox Code Playgroud)

std::numeric_limits<double>::quiet_NaN();
Run Code Online (Sandbox Code Playgroud)

问题是我认为信号NaN没有任何用处.如果屏蔽了_EM_INVALID,则其行为与安静NaN完全相同.由于没有NaN与任何其他NaN相当,因此没有逻辑差异.

如果屏蔽_EM_INVALID (启用异常),则甚至无法使用信号NaN初始化变量: double dVal = std::numeric_limits<double>::signaling_NaN();因为这会引发异常(信号NaN值被加载到x87寄存器以将其存储到存储器地址).

您可以像我一样思考以下内容:

  1. 掩码_EM_INVALID.
  2. 使用信令NaN初始化变量.
  3. Unmask_EM_INVALID.

但是,步骤2会导致信令NaN转换为安静的NaN,因此后续使用它不会导致异常被抛出!那么WTF?!

信号NaN是否有任何实用性或目的?我理解其中一个原始意图是使用它初始化内存,以便可以捕获使用单位化浮点值.

有人能告诉我,如果我在这里遗失了什么吗?


编辑:

为了进一步说明我希望做的事情,这里有一个例子:

考虑对数据向量(双精度)执行数学运算.对于某些操作,我想允许向量包含"缺失值"(假设这对应于电子表格列,例如,其中一些单元格没有值,但它们的存在很重要).对于某些操作,我希望允许向量包含"缺失值".如果集合中存在"缺失值",也许我想采取不同的行动 - 可能执行不同的操作(因此这不是无效的状态).

这个原始代码看起来像这样:

const double MISSING_VALUE = 1.3579246e123;
using std::vector;

vector<double> missingAllowed(1000000, MISSING_VALUE);
vector<double> missingNotAllowed(1000000, MISSING_VALUE);

// ... populate missingAllowed and missingNotAllowed with (user) data...

for (vector<double>::iterator it = missingAllowed.begin(); it != missingAllowed.end(); ++it) …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point ieee-754 visual-c++ x87

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

使用大型库本身会使代码变慢吗?

我有一种心理tic,这让我不愿意在C和C++等低级语言中使用大型库(如GLibBoost).在我看来,我认为:

嗯,这个图书馆有数千个小时的时间,而且它是由那些比我更了解语言的人创造的.他们的作者和粉丝说这些库是快速可靠的,而且功能看起来非常有用,它肯定会阻止我(严重地)重新发明轮子.

该死的,我永远不会使用该库中的所有功能.它太大了,多年来可能会变得臃肿; 这是我的程序需要拖延的另一个球和链.

托沃兹咆哮(争议虽然它是)不完全把我的心脏放心无论是.

我的想法有什么依据,还是我只是不合理和/或无知?即使我只使用大型库的一个或两个功能,通过链接到该库我会产生运行时性能开销吗?

我确信它还取决于具体的库是什么,但我通常很想知道大型库是否会在技术层面上固有地引入低效率.

当我没有技术知识知道我是否正确的时候,我已经厌倦了对此的痴迷,嘀咕和担心.

请把我从痛苦中解救出来!

c c++ performance boost glib

46
推荐指数
5
解决办法
5316
查看次数

如何将一个回购改为另一个回购

假设我有两个不同的存储库,如下所示:

Project 1:
Init---A---B---C---HEAD1

Project 2:
Init---D---E---F---G---HEAD2
Run Code Online (Sandbox Code Playgroud)

有没有办法将Project 1(Init to HEAD)重新绑定到Project 2的Init提交,所以它看起来像这样:

Project 1 & 2:
     A---B---C---HEAD1
   /
Init---D---E---F---G---HEAD2
Run Code Online (Sandbox Code Playgroud)

项目1和项目2的内容类似.主要区别在于它们的文件结构略有不同,如下所示:

Project1:

MyProject/
    File1
    File2
    File3

Project2:

MyParentProject/
    MyProject/
        File1
        File2
        File3
    SomeFolder/
    SomeOtherFolder/
    ...etc/
Run Code Online (Sandbox Code Playgroud)

仅供参考:MyProject不是MyParentProject的子模块.MyProject和MyParentProject存在于两个独立的位置,作为两个单独的git存储库.

git version-control merge repository

10
推荐指数
2
解决办法
5660
查看次数

如何在调用 Crystal Reports ExportToHttpResponse 方法后运行清理代码?

我们在 ASP.Net 应用程序中遇到了一个问题,即在为用户生成报告后,Crystal Reports 引擎在服务器的 Temp 文件夹中留下垃圾 .tmp 文件。

所以我们试图弄清楚如何在 Report 对象上运行 .Close() 和 .Dispose() 方法,但我们发现在导出发生后代码永远不会运行。

MyReport.Report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, 
        this.Response, true, "My_Report");

MyReport.Report.Close();
MyReport.Report.Dispose();
Run Code Online (Sandbox Code Playgroud)

设置在最后两行的断点永远不会被命中,我们还尝试将其他代码放在那里来测试处理。没有一个运行。(我也在其他具有类似代码的网站上看到过这个问题,但没有答案)

我假设此时 ExportToHttpResponse 方法正在向用户返回文件流 (PDF),结束处理,因此其余代码不会运行。如果是这种情况,我们如何让 CR 对临时文件执行清理,而 Close() 和 Dispose() 方法应该这样做?我们是否必须实施手动事后清理?

asp.net crystal-reports

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

基于ID的jQuery removeClass?

所以现在我这样做:

$(".radio_visible").hide().removeClass("radio_visible");
Run Code Online (Sandbox Code Playgroud)

但我希望能够做的是删除所有radio_visible类,如果它在特定的ID内.有点像:

$(".radio_visible").hide().removeClass("#payment_fields .radio_visible");
Run Code Online (Sandbox Code Playgroud)

那么还有另一个jQuery函数我应该考虑将其拉下来吗?

jquery

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

在UserControl中反映以检查包含的表单.C#

我的项目是用c#编写的.我有一个我设计的用户控件.在那个用户控件中,我希望能够通过使用反射来查看控件所在的表单,以查看表单上的所有其他控件.

我该怎么做呢?我用反射来通过dll,但不是用于这样的事情.

总结:我的usercontrol放在一个表单上,我希望我的usercontrol到onLoad查看表单上的所有其他控件(有时我想将它限制在同一个容器而不是整个表单,但我可以稍后解决).

如果有人有任何想法,我也会接受不使用反思的想法.

谢谢!

编辑:

所以我试着简单地浏览一下父控件,这对于我试图做的事情没有用,这是我在上面严重解释它的错.

让我提供一些细节.

我知道在主窗体上会有一个ContainerListView控件,现在当你向containerlistview添加列时,会创建ContainerListviewColumnHeaders.它们的声明出现在表单的initalizeComponent()中.我想要做的是在我的usercontrol中我想查看表单并找到所有的ContainerListViewColumnHeader,但是因为它们不是'Control'类型(它们是'Component'),所以它们不会出现在前面的方法中.询问Containerlistview不是一种选择.

c# reflection user-controls

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

如何让ninject 2.0与asp.net mvc 2一起使用?

我在用:-

  1. asp.net mvc rc 2
  2. Ninject和ninject asp.net mvc扩展(http://github.com/enkari/ninject.web.mvc)

我一直在为这个对象定义'No parameterless constructor'.为我的AccountController.AccountController注入了Services.这些服务的绑定在ServiceModule中定义.

在Global.asax.cs中找到我的MvcApplication的代码.

public class MvcApplication : NinjectHttpApplication // System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Account", action = "Login", id = "" }  // Parameter defaults
        );

    }

    protected override void OnApplicationStarted()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);

        RegisterAllControllersIn(Assembly.GetExecutingAssembly());
    }

    protected override IKernel CreateKernel()
    {
        return new StandardKernel(new INinjectModule[] { 
            new ServiceModule(),
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc dependency-injection ninject asp.net-mvc-2

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

在mysql中限制要加入的行数

因此,我想将两个表连接在一起,但是对于第一个表中的每一行,我只想将其连接到另一个表中前8个匹配的行,并按该表中的列之一排序。我可以使用任何巧妙的语法,还是需要弄乱子查询?

mysql join limit

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