问题列表 - 第16010页

pthread可以自行清理吗?

我们说我:

  • malloca pthread_t用于保存线程上下文

  • pthread_create使用as用户参数指向pthread_t结构的指针

换句话说,线程函数可以访问其pthread_t上下文结构.现在这里是棘手的一点:

pthread如何自行退出并pthread_t以某种方式释放上下文?即是否可能涉及父线程?(没有互斥/加入等)

把它想象成一个"轻量级过程".

(并且free()在退出之前没有线程不能结构thread_func.

linux pthreads

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

在C linux中查询MX记录

在Linux上的C中是否有任何函数可以查询MX记录(如gethostbyname).

c linux dns smtp

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

Trac工作流阻塞

有没有办法根据用户角色阻止给定的更改?

例如,我不希望任何开发人员能够将票证状态从"开发"更改为"已关闭".我希望它通过'test',并允许'test'仅对具有测试角色的用户'关闭'.

workflow trac

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

是否有可能C#在调用具有可选参数的VB6方法时遇到问题?

我在VB6 DLL中找到的方法中添加了3个可选的布尔参数.容纳它的类是MultiUse(公共),方法本身是私有的.该类实现TLB的特定接口,允许公共调用此方法.

在VB6端添加3个可选参数后,我修改了相关的C#代码,以便指定3个可选参数.它构建得很好...但是,当我尝试运行该代码时,它失败并显示以下错误消息:

找不到方法:'Boolean MyTLBName.IMyClassName.MyMethod(System.Object,System.String,Boolean,Boolean,Int32,Int32 ByRef,System.Object,System.Object,System.Object,Boolean,Boolean,Boolean)'.

请注意错误消息中是如何显示所有3个布尔参数的?看起来很好......我知道在从C#调用方法时我指定了3个布尔值.

可疑,我检查了OLEView中的MyTLBName.IMyClassName接口,并看到了这个:

[ID(0x60030000)]

HRESULT MyMethod(
                //Cut out the other parameters - they are working fine.
                [in, optional, defaultvalue(-1)] VARIANT_BOOL blnMyFirstOptionalBoolean, 
                [in, optional, defaultvalue(-1)] VARIANT_BOOL blnMySecondOptionalBoolean, 
                [in, optional, defaultvalue(-1)] VARIANT_BOOL blnMyThirdOptionalBoolean, 
                [out, retval] VARIANT_BOOL* __MIDL_0324);
Run Code Online (Sandbox Code Playgroud)

同样,3个可选参数是可见的,看起来很好.

在我看来它应该工作......但也许我错过了一些东西.

有没有什么方法可以让我无需在TLB中创建另一个版本的"MyMethod"?(使用不同的名称,并根据需要而不是可选的3个参数)

c# vb6 com interface typelib

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

Java,如何添加"比较器"类来增加代码的可重用性

前言:我代表一位朋友发帖(他显然很害羞自己发布),我浏览了相关的问题,我似乎没有发现任何重复......但请注意我不知道Java,所以我提前道歉,如果这是重复!

这是代码的一部分:

public class ElencoEsami implements Comparable{
    private ArrayList<EsameMedico>  a = new ArrayList<EsameMedico>();
    private Comparable comparatore;
    public ElencoEsami() {
    }
    public void addEsame(EsameMedico e) {
        if (a.isEmpty()) {
            a.add(0,e);
            return;
        }

        for(int i=0;i<a.size();i++) {
            if (a.get(i).getData().after(e.getData())) {
                a.add(i,e);
                break;
            }
        }
        a.add(e);
    }
    public int compareTo(Object o) {
// ?????
    }

}
Run Code Online (Sandbox Code Playgroud)

我的朋友想要实现"addEsame",以便最大化代码可重用性,特别是他希望能够简单地通过添加一个新类(我认为的比较器类)来改变列表的排序方式(现在它按名称排序) ?或者至少我是如何在C++中完成的.)

谢谢!

java comparator

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

ReSharper警告 - 访问修改后的关闭

我有以下代码:

string acctStatus = account.AccountStatus.ToString();
if (!SettableStatuses().Any(status => status == acctStatus))
    acctStatus = ACCOUNTSTATUS.Pending.ToString();
Run Code Online (Sandbox Code Playgroud)

请注意,account.AccountStatus是ACCOUNTSTATUS类型的枚举.在第二行,ReSharper向我发出了acctStatus的"访问修改后的关闭"的警告.当我执行建议的操作,复制到本地变量时,它将代码修改为以下内容:

string acctStatus = realAccount.AccountStatus.ToString();
string s = acctStatus;
if (!SettableStatuses().Any(status => status == s))
    acctStatus = ACCOUNTSTATUS.Pending.ToString();
Run Code Online (Sandbox Code Playgroud)

为什么这比我原来的更好或更好?

编辑

它还建议在数组中包装局部变量,它产生:

string[] acctStatus = {realAccount.AccountStatus.ToString()};
if (!SettableStatuses().Any(status => status == acctStatus[0]))
    acctStatus[0] = ACCOUNTSTATUS.Pending.ToString();
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很奇怪.

c# resharper warnings

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

DTOs与序列化持久化实体

我很想知道社区对这个问题的看法.我最近遇到了NHibernate/WCF场景(实体在服务层持久存在)的问题,并意识到我可能在这里走错了方向.

我的问题很明显,当在Web服务(在这种情况下为WCF)后面使用持久对象图(NHibernate,LINQ to SQL等)时,您更喜欢通过网络发送这些实体吗?或者你会创建一组较轻的DTO(没有循环引用)?

c# web-services dto object-persistence

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

将csv加载到oleDB中并强制所有推断的数据类型为字符串

我试图使用oledb将csv文件加载到数据表中.

这没有问题,但不幸的是,其中一个看起来很数字的字段在字段中有大约3%的字符串值,因此没有填充.

因为我将csv转换为xml我真的不关心推断数据类型,只需要字符串中的数据,因为我可以稍后在Linq2XMl阶段投出它.

我希望能够在连接字符串中执行此操作.

我不想只是复制表,使用我想要的数据类型的新列进行设置,然后将数据写入其中,因为这将涉及加载csv文件两次.

有任何想法吗?

我当前的连接字符串是

Provider = Microsoft.Jet.OLEDB.4.0; Data Source ="+ thefile.DirectoryName +"; Extended Properties ='text; HDR = Yes; FMT = Delimited'";

c# csv oledb connection-string

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

6
推荐指数
5
解决办法
2万
查看次数

将图像设置为图像源时覆盖(重新保存)图像的问题

美好的一天,

我在使用图像权限时遇到了一些麻烦.

我正在从文件加载图像,调整大小,然后将其保存到另一个文件夹.然后我就这样显示:

    uriSource = new Uri(Combine(imagesDirectoryTemp, generatedFileName), UriKind.Absolute);

    imgAsset.Source = new BitmapImage(uriSource);
Run Code Online (Sandbox Code Playgroud)

这工作正常,如果用户然后立即选择另一个图像并尝试将其保存在原始文件上,则会出现问题.

保存图像时会生成异常 "ExternalException: A generic error occurred in GDI+."

在一些游戏后,我已经将错误缩小到imgAsset.Source = new BitmapImage(uriSource);删除此行并且不设置imagesource将允许我多次覆盖此文件.

我还尝试将源设置为其他内容,然后重新保存,希望旧的引用将被处理,情况并非如此.

我怎么能通过这个错误?

谢谢,Kohan

编辑

现在使用此代码我没有得到异常,但图像源没有更新.此外,因为我没有使用SourceStream,我不知道我需要处理什么才能使这个工作.

       uriSource = new Uri(Combine(imagesDirectoryTemp, generatedFileName), UriKind.Absolute);

       imgTemp = new BitmapImage();
       imgTemp.BeginInit();
       imgTemp.CacheOption = BitmapCacheOption.OnLoad;
       imgTemp.UriSource = uriSource;
       imgTemp.EndInit();

       imgAsset.Source = imgTemp;
Run Code Online (Sandbox Code Playgroud)

c# wpf image save

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