递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1790|回复: 17
打印 上一主题 下一主题

[视窗] 关于火山方法名静态的问题

[复制链接]

7

主题

33

帖子

121

积分

注册会员

Rank: 2

积分
121
跳转到指定楼层
楼主
发表于 2024-8-2 02:21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在火山视窗里面 用一个线程调用 一个方法  那么前提这个方法必须是静态才可以  那么问题来了
我又一个类的成员在普通方法里面可以调用 但是在静态类里面就无法调用了  怎么解决》

如果让静态的方法里面调用一个类的成员变量呢?
回复

使用道具 举报

85

主题

939

帖子

4819

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4819
沙发
发表于 2024-8-2 05:15:06 | 只看该作者
取程序().类变量.成员 = 1
或者使用这个https://bbs.voldp.com/thread-22654-1-1.html
或者类对象指针过去.. 比如 启动线程(取静态方法(xxx),本对象.取对象指针())

xxx(对象指针){
  读指针处对象(对象指针,当前类名称).成员 = 1
}
回复

使用道具 举报

7

主题

33

帖子

121

积分

注册会员

Rank: 2

积分
121
板凳
 楼主| 发表于 2024-8-2 08:39:37 | 只看该作者
小蜗牛 发表于 2024-8-2 05:15
取程序().类变量.成员 = 1
或者使用这个https://bbs.voldp.com/thread-22654-1-1.html
或者类对象指针过去. ...

取程序()我已经公开类了但还是取不到 变量啊
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40054
地板
发表于 2024-8-2 09:18:08 | 只看该作者
qiken 发表于 2024-8-2 08:39
取程序()我已经公开类了但还是取不到 变量啊

变量需要公开
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

7

主题

33

帖子

121

积分

注册会员

Rank: 2

积分
121
5#
 楼主| 发表于 2024-8-2 09:20:11 | 只看该作者

变量也已经公开了老师 但还是取不到什么情况?
回复

使用道具 举报

26

主题

1876

帖子

6828

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6828
6#
发表于 2024-8-2 09:32:58 | 只看该作者
取程序 返回的是启动类,你的类变量需要能在启动类那边一路访问过来。
线程访问成员变量,还有几个方法。
一、可以用官方的「线程类」,线程方法是在接收事件里编写,可以直接访问类成员变量(注意加锁);
二、用PIV模块或火山模块的 启动动态线程,支持启动类的动态方法,自然也能访问类成员,还支持按值传递任意类型和数量的参数;
回复

使用道具 举报

7

主题

33

帖子

121

积分

注册会员

Rank: 2

积分
121
7#
 楼主| 发表于 2024-8-2 09:41:26 | 只看该作者
Xelloss0618 发表于 2024-8-2 09:32
取程序 返回的是启动类,你的类变量需要能在启动类那边一路访问过来。
线程访问成员变量,还有几个方法。
...

你好 我用了你说的线程类 事件里调用这个办法可以了 ,但是事件里面这种线程和启动线程命令不知道有没有区别,还有用事件里线程,好像不能线程等待啊  第2种动态线程调用我试了下 好像有点难度 可以写个简单例子啊 谢谢
回复

使用道具 举报

26

主题

1876

帖子

6828

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6828
8#
发表于 2024-8-2 09:58:06 | 只看该作者
线程类和启动线程没什么区别,也就封装的方式不同。
另外线程等待是啥?线程里直接用延时就行了,其他都是没什么意义的。

<火山程序 类型 = "通常" 版本 = 1 />

类 案例 <公开 折叠>
{
    变量 测试对象 <类型 = 测试类>
    变量 成员变量 <类型 = 整数>

    方法 例子 <公开>
    {
        启动动态线程 (本对象, "funcA", "你好", 文本到字节集 ("火山"))
        启动无参数动态线程 (测试对象, "funcB")
    }

    方法 方法A <静态 折叠 @输出名 = "funcA" @强制输出 = 真>
    参数 参数1 <类型 = 文本型>
    参数 参数2 <类型 = 字节集类>
    {
        调试输出 (成员变量, 参数1, 参数2)
    }
}

类 测试类 <折叠>
{
    变量 变量 <公开 类型 = 整数>

    方法 方法 <公开 类型 = 整数 @输出名 = "funcB" @强制输出 = 真>
    {
        返回 (变量 * 2)
    }

    #
}

更多例子看例程:https://saier.lanzoul.com/b016cwvle
回复

使用道具 举报

7

主题

33

帖子

121

积分

注册会员

Rank: 2

积分
121
9#
 楼主| 发表于 2024-8-2 15:19:59 | 只看该作者
Xelloss0618 发表于 2024-8-2 09:58
线程类和启动线程没什么区别,也就封装的方式不同。
另外线程等待是啥?线程里直接用延时就行了,其他都是 ...

用了你说的线程类事件 经过测试,我发现一个很大问题,就是第一次执行线程类事件时候,如果在线程里面没有退出,比如一直在循环,那么如果再次启动一个线程事件进入就会导致,卡死的现象。或者用了线程,停止命令一样卡死,怎么解决? 也就是说只能执行一次这种线程类事件,第2次就算停止从新执行也会直接卡死
回复

使用道具 举报

7

主题

33

帖子

121

积分

注册会员

Rank: 2

积分
121
10#
 楼主| 发表于 2024-8-2 15:29:41 | 只看该作者
Xelloss0618 发表于 2024-8-2 09:32
取程序 返回的是启动类,你的类变量需要能在启动类那边一路访问过来。
线程访问成员变量,还有几个方法。
...

线程类事件无法结束。用线程类,停止命令直接卡主  不知道怎么解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-10-30 14:31 , Processed in 0.080712 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表