求助,关于多线程委托执行方法的问题。
我现在有两个线程假设为T和U,T为计时器线程,由计时器控制定时执行。U为用户界面线程,由用户控制随机执行。目前由于是二次开发,我对T线程的执行时间和启停没有任何控制能力。但是可对T线程的某个执行方法所在的类ClassT进行修改。我想实现这样一个功能,T线程执行时需要独占网络通道资源,而我的U线程也需要占用网络通道资源。
我的想法是通过U线程修改T线程执行方法的类,给T线程一个标志变量,T线程的方法检测该标志变量执行某个U线程要执行的方法。从而实现T线程代U线程执行要执行的方法的目的。
1.修改ClassT类,新建 bool型 mUDelegated 变量。用于控制T线程执行需要的方法。
2.修改T线程的执行方法,ClassT中的MethodT方法,增加依赖于mUDelegated变量的分支,用于执行U线程指定的方法MethodU2(该方法可能是很多不同的方法)。
3.编写U线程的方法MethodU,修改mUDelegated的值。
目前有这么个问题
a.我如何将通过U线程要执行的方法名和方法参数传递个T线程?
b.U线程如何获得和T线程执行方法MethodU2的结果?
我尝试这么几种方式
a. 通过定义委托,MethodT的分支方法内直接调用委托。但是存在传递参数和返回参数的问题,另外调用的方法类型都不一样委托似乎无法实行。
b. 向类ClassT中添加一个变量,方法名,通过反射执行指定方法。同样存在传递参数的问题。
c. 对每个方法设计一个类,用于存储传入参数和返回参数,该思路似乎可行,但执行起来使得程序结构相当复杂,代码量也很大。
请高手替我分析下。