问题列表 - 第34225页

放弃协同程序

在Lua 5.1中,从不让协程正常结束有多糟糕?换句话说,如果一个协程收益但是我从来没有恢复它,它是否会在程序完成之前留下很多州?

cor=coroutine.wrap(somefunc)

while true do
   done=cor()
   if done then -- coroutine exited with "return true" 
       break
   else -- coroutine yielded with "coroutine.yield(false)"
       if some_condition then break end
   end
end

function somefunc()
    -- do something
    coroutine.yield(false)
    -- do some more
    return true
end 
Run Code Online (Sandbox Code Playgroud)

根据上面伪代码中的some_condition,协程可能永远不会被恢复,因此可能永远不会正确地"结束".

我可以这样做几十个协同程序而不必担心吗?将协同程序置于此状态是否安全?这个很贵吗?

lua coroutine

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

为什么在C#中禁止为发件人发送事件?

引自:http: //msdn.microsoft.com/en-us/library/aa645739(VS.71).aspx

"调用事件只能在声明事件的类中完成."

我很困惑为什么会有这样的限制.如果没有这个限制,我将能够编写一个类(一个类),这个类一次用于管理发送给定类别的事件 - 比如INotifyPropertyChanged.

有了这个限制,我必须重新复制并粘贴相同(相同!)的代码.我知道C#的设计者不重视代码重用太多(*),但是gee ...复制和粘贴.这有多高效?

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string name)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(name));
        }
    }
Run Code Online (Sandbox Code Playgroud)

在每个班级改变一些事物,到你生命的尽头.害怕!

所以,虽然我正在恢复我的额外发送课程(我太容易上当了),以旧的,"好"的复制和粘贴方式,你能看到吗?

能够为发件人发送事件会发生什么可怕的事情?

如果你知道如何避免这种限制的任何技巧 - 也不要犹豫回答!

(*)具有多重继承我可以更好地编写通用发送方,但是C#没有多重继承

编辑

到目前为止最好的解决方法

介绍界面

public interface INotifierPropertyChanged : INotifyPropertyChanged
{
    void OnPropertyChanged(string property_name);
}
Run Code Online (Sandbox Code Playgroud)

为PropertyChangedEventHandler添加新的扩展方法Raise.然后为此新接口添加mediator类,而不是基本的INotifyPropertyChanged.

到目前为止,它是最小的代码,让我们代表它的所有者从嵌套对象发送消息(当所有者需要这样的逻辑时).

谢谢大家的帮助和想法.

编辑1

Guffa写道:

"通过从外部触发事件,你无法做出任何事情,"

这很有意思,因为......我可以.这正是我要问的原因.看一看.

假设你有类字符串.不好意思吧?但是让我们用Invoker类打包它,它每次发生变化时都会发送事件.

现在:

class MyClass : INotifyPropertyChanged
{
    public SuperString text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,当文本被更改时,MyClass被更改.因此,当我在文本内部时,我知道,如果我只拥有所有者,那么它也会被更改.所以我可以代表它发送活动.它在语义上是100%正确的.

备注:我的课程稍微聪明一点 - 所有者设置是否有这样的逻辑.

编辑2

传递事件处理程序的想法 - …

c# events

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

如何使用Maven中的源代码生成WAR?

我想用Maven生成我的Web应用程序的战争,里面有源代码.如何用Maven做到这一点?

maven-2 war

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

将所有字谜组合在一起

问题陈述:给你一组k个字符串,每个长度为n.你必须一起输出一组字谜.Anagrams就像是atm - mat,like-kile.

algorithm anagram

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

在Perl中将UTF8字符串转换为ASCII

我已经尝试了Google和StackOverflow推荐的所有内容(我能找到),包括使用Encode.我的代码工作,但它只使用UTF8,我得到广泛的字符警告.我知道如何解决这些警告,但我没有将UTF8用于其他任何事情,所以我只想转换它而不必调整我的其余代码来处理它.这是我的代码:

my $xml = XMLin($content);
# Populate the @titles array with each item title.
my @titles;
for my $item (@{$xml->{channel}->{item}}) {
    my $title = Encode::decode_utf8($item->{title});
    #my $title = $item->{title};
    #utf8::downgrade($title, 1);
    Encode::from_to($title, 'utf8', 'iso-8859-1');
    push @titles, $title;
}
return @titles;
Run Code Online (Sandbox Code Playgroud)

注释掉你可以看到我尝试过的其他一些东西.我很清楚我不知道我在这做什么.我只是想用一个普通的旧ASCII字符串结束.任何想法将不胜感激.谢谢.

perl ascii utf-8

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

xstream - 以UTF-8保存XML的正确方法

以前,要通过xstream 读取 UTF-8编码的XML,我使用DomDriver如下:

XStream xStream = new XStream(new DomDriver("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

但是,后来我意识到这非常慢.我使用以下方式:

优化xstream的加载速度

这至少可以正常工作.

但是,后来我意识到同样的技术不能应用于编写XML.我会得到所有??? 字符.

这是在写入期间使用DomDriver的最后一个可行代码

public static boolean toXML(Object object, File file) {
    XStream xStream = new XStream(new DomDriver("UTF-8"));
    OutputStream outputStream = null;

    try {
        outputStream = new FileOutputStream(file);
        xStream.toXML(object, outputStream);
    }
    catch (Exception exp) {
        log.error(null, exp);
        return false;
    }
    finally {
        if (false == close(outputStream)) {
            return false;
        }
        outputStream = null;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.为了与不使用DomDriver 的read方法匹配,我将代码更改为

public static boolean toXML(Object object, File …
Run Code Online (Sandbox Code Playgroud)

java xml xstream

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

如何在XElement或LINQ中使用XPath?

考虑以下XML:

<response>
  <status_code>200</status_code>
  <status_txt>OK</status_txt>
  <data>
    <url>http://bit.ly/b47LVi</url>
    <hash>b47LVi</hash>
    <global_hash>9EJa3m</global_hash>
    <long_url>http://www.tumblr.com/docs/en/api#api_write</long_url>
    <new_hash>0</new_hash>
  </data>
</response>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种非常简短的方法来获得<hash>元素的价值.我试过了:

var hash = xml.Element("hash").Value;
Run Code Online (Sandbox Code Playgroud)

但那不起作用.是否可以提供XPath查询XElement?我可以使用旧System.Xml框架来执行此操作,执行以下操作:

xml.Node("/response/data/hash").Value
Run Code Online (Sandbox Code Playgroud)

在LINQ命名空间中是否有这样的东西?


更新:

在对此进行了一些讨论之后,我找到了一种方法来做我正在尝试做的事情:

var hash = xml.Descendants("hash").FirstOrDefault().Value;
Run Code Online (Sandbox Code Playgroud)

我仍然有兴趣看看是否有人有更好的解决方案?

.net xml xelement xpath linq-to-xml

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

PHP根文件夹

rename('/images/old_name.jpg', '/images/new_name.jpg');
Run Code Online (Sandbox Code Playgroud)

此代码提供的文件未找到.

调用文件的脚本放在/source/文件夹中.

文件可以从中打开 http://site.com/images/old_name.jpg

如何从root获取这些文件?

php file root

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

如何在输入中找到最常见的数字?

这是我正在做的非常抽象的解释:

假设我有一个文本文件,其中包含由换行符分隔的数字.现在,我把这些数字放在一个map<int, int>,其中键是数字,值是频率.

我的最终目标是按频率排序的数字列表.我该怎么做呢?请注意,频率显然可以出现多次.我的想法是让一个struct包含数字和它的频率,并定义,<以便它永远不会返回相等.然后我会遍历地图,将所有元素放入该结构中,然后放入集合中.

c++

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

当app关闭或在后台时,iPhone将NSUserDefaults设置为nil

我想在应用程序关闭或在后台运行一段时间(比如说5分钟)时,消除保存到NSUserDefaults所有字段中的所有变量.

我试图在applicationDidFinishLaunching的app委托中添加一行,如下所示:

if (UIApplicationStateBackground == TRUE) {
    NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults];

    [profiles setObject:nil forKey:@"name1"];
    [profiles synchronize];
}
Run Code Online (Sandbox Code Playgroud)

我还将这部分添加到applicationWillTerminate中:

NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults];

    [profiles setObject:nil forKey:@"name1"];
    [profiles synchronize];
Run Code Online (Sandbox Code Playgroud)

这似乎都不起作用,我不知道如何设置'如果5分钟超过应用程序在后台,删除NSUserDefaults变量'的条件 - 任何帮助?

application-state ios

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

标签 统计

xml ×2

.net ×1

algorithm ×1

anagram ×1

application-state ×1

ascii ×1

c# ×1

c++ ×1

coroutine ×1

events ×1

file ×1

ios ×1

java ×1

linq-to-xml ×1

lua ×1

maven-2 ×1

perl ×1

php ×1

root ×1

utf-8 ×1

war ×1

xelement ×1

xpath ×1

xstream ×1